2009-06-25 2 views
1

zu sortieren habe ich eine GridItemCollection definiert alsWie ein GridItemCollection

GridItemCollection items = (GridItemCollection) Session["driveLayout"]; 

ich die Kollektion eines der Elemente in jedem GridItem sortieren möchte. In speziell diesem Artikel

item["VolumeGroup"].ToString().ToLower() 

Was ist der beste Weg, dies zu tun?

Dank

Antwort

0

Sie können die LINQ OrderBy-Extension-Methode verwenden:

GridItemCollection items = (GridItemCollection)Session["driveLayout"]; 
var sortedItems = items.OfType<GridItem>().OrderBy(item => item.GridItems["VolumeGroup"].ToString().ToLower()); 

OfType() Konvertiert ein IEnumerable in ein IEnumerable wobei T der Typ in dem Typ-Parameter angegeben ist. Da wir implizit wissen, dass GridItemCollection eine Auflistung von GridItem-Typen ist, können wir dies tun.

Sobald wir eine IEnumerable haben, haben wir Zugang zu allen LINQ-Erweiterungsmethoden, einschließlich SortiertNach, die eine Lambda nimmt als Sortierparameter zu verwenden.