如何按字母顺序对每个对象包含多个参数的ArrayList进行排序?

时间:2011-05-09 15:02:10

标签: c# sorting arraylist

问候(不知道标题是否有意义)

我有一个ArrayList,其中可以包含不同数量的对象。

实施例

private ArrayList items = new ArrayList();
var list = web.Lists[ListName];

items.Add(new { GroupName = value });

foreach (SPListItem item in list.Items)
{
   items.Add(new { GroupName = value, ItemID = item.ID, ItemName = item.Name });
}

如上所示,我的对象只包含GroupName,然后是包含GroupNameItemIDItemName

的对象

我想要做的是按照ItemName对所有项目进行排序。

当它只有一个参数时我没有问题排序它,但是当它是多个参数时,我很无能为力。我该怎么做?

1 个答案:

答案 0 :(得分:2)

编辑:在添加到新的arraylist之前排序

foreach(SPListItem item in list.Items.Cast<SPListItem>.OrderBy(i => i.Name))
{
   items.Add(new { GroupName = value, ItemID = item.ID, ItemName = item.Name });
}

较新的编辑: 如果你只想要一个可枚举的集合(没有arraylist,你无法轻松地从中提取项目),你可以使用LINQ Select运算符。

var items = ist.Items.Cast<SPListItem>.OrderBy(i => i.Name).Select(i => new { GroupName = value, ItemID = i.ID, ItemName = i.Name });