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

本文关键字:参数 ArrayList 排序 包含 顺序 何按字 对象 | 更新日期: 2023-09-27 17:55:53

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

我有一个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 个以上参数的 ArrayList 进行排序

编辑:在添加到新数组列表之前进行排序

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

较新的编辑:如果您只需要一个可枚举的集合(没有数组列表,您无法在其中轻松提取项目),则可以使用 LINQ Select 运算符。

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