我将GridItemCollection定义为
GridItemCollection items = (GridItemCollection) Session["driveLayout"];
我想根据每个GridItem中的一个项目对集合进行排序。特别是这个项目
item["VolumeGroup"].ToString().ToLower()
最好的方法是什么?感谢
答案 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参数。