2009-06-25 20 views
1

我有一個GridItemCollection定義爲如何排序GridItemCollection

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

我想排序基於關每個的GridItem的項目之一的集合。特別是這個項目

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

這樣做的最佳方法是什麼?感謝

回答

0

可以使用LINQ的OrderBy擴展方法:

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

OfType()將IEnumerable轉換到IEnumerable其中T是在所述類型參數中指定的類型。因爲我們知道GridItemCollection是一個鍵入GridItem的項的集合,所以我們可以做到這一點。

一旦我們有一個IEnumerable,我們可以訪問所有的LINQ擴展方法,包括OrderBy,它需要一個lambda作爲排序參數。