如何排序GridItemCollection

时间:2009-06-25 14:14:59

标签: c# sorting

我将GridItemCollection定义为

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

我想根据每个GridItem中的一个项目对集合进行排序。特别是这个项目

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

最好的方法是什么?感谢

1 个答案:

答案 0 :(得分:0)

您可以使用LINQ OrderBy扩展方法:

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

OfType()将IEnumerable转换为IEnumerable,其中T是type参数中指定的类型。由于我们隐含地知道GridItemCollection是一个类型为GridItem的项的集合,我们可以这样做。

一旦我们拥有了IEnumerable,我们就可以访问所有LINQ扩展方法,包括OrderBy,它将lambda用作sort参数。