Nach Datum sortieren

08/04/2008 - 00:27 von Andreas Mahub | Report spam
Guten Abend,

ich habe eine Klasse in der ich Eigenschaften und Methoden ablege.
Allerdings mit Hilfe der CollectionBase.
Beispiel:
Public Class PlayListe

Inherits CollectionBase

Default Public Property Item(ByVal index As Integer) As PlaylistItem
Get
Return DirectCast(List(index), PlaylistItem)
End Get
Set(ByVal value As PlaylistItem)
List(index) = value
End Set
End Property

Public Overloads ReadOnly Property Count() As Integer
Get
Return List.Count
End Get
End Property

Public Sub Add(ByVal PlaylistItem As PlaylistItem)
List.Add(PlaylistItem)
End Sub

Public Sub Remove(ByVal PlaylistItem As PlaylistItem)
List.Remove(PlaylistItem)
End Sub

Public Class PlaylistItem
...jetzt kommen alle Eigenschaften und Methoden.

Jetzt möchte ich in einem ListView-Control alle Eintràge auflisten lassen,
aber sortiert nach Datum. Könnte ich dafür irgendwie die neuen
LINQ-Funktionen verwenden? Das wàre ja richtig toll wenn das so gehen
könnte:
Dim Liste = From x in MyPlayliste ORDER BY x.Datum
For Each Result in Liste
Lst_Playlist.Items.Add Result...etc...etc...
next i

Über einen Tipp würde ich mich sehr freuen.

Gruß
Andy
 

Lesen sie die antworten

#1 Elmar Boye
09/04/2008 - 09:48 | Warnen spam
Hallo Andreas,

Andreas Mahub schrieb:
ich habe eine Klasse in der ich Eigenschaften und Methoden ablege.
Allerdings mit Hilfe der CollectionBase.



gibt es dafür einen speziellen Grund?
Wenn Du .NET 2.0++ einsetzt, was die Linq Frage nahelegt,
wàre eine Collection(Of T) vorzuziehen.

Jetzt möchte ich in einem ListView-Control alle Eintràge auflisten
lassen, aber sortiert nach Datum. Könnte ich dafür irgendwie die neuen
LINQ-Funktionen verwenden?



Das geht durchaus mit Linq, allerdings nicht ganz so komfortabel...

Dim Liste = From x in MyPlayliste ORDER BY x.Datum




Dim liste = From x In MyPlayListe _
Order By DirectCast(x, PlaylistItem).Datum
For Each item As PlayListItem In liste
...

Der DirectCast ergibt sich daraus, dass CollectionBase nur
ein untypisiertes (Object) IEnumerable liefert.
Würdest Du von ObjectModel.Collection(Of T) ableiten oder
eine List(Of T) verwenden, so bliebe Dir das erspart.

Gruß Elmar

Ähnliche fragen