ArrayList SortItems = new ArrayList();
        SortItems.Add("Item1");
        SortItems.Add("Item2");
        SortItems.Add("Item3");
        SortItems.Add("Item4");
        SortItems.Add("Item5");
        SortItems.Add("Item6");
        SortItems.Add("Item7");
        SortItems.Add("Item8");
        SortItems.Add("Item9");
        SortItems.Add("Item10");
        SortItems.Add("Item11");

        SortItems.Sort();


如果我运行此程序,我将得到以下结果



但我想对列表进行排序,例如Item1,Item2,Item3,Item4,Item5,Item6,Item7,Item8,Item9,Item10,Item11

最佳答案

构建自定义比较器:

public class CusComparer: IComparer
{
    public int Compare(object x, object y)
    {
        return int.Parse((x as string).Substring(4)) - int.Parse((y as string).Substring(4));
    }
}


因此,您可以使用:

ArrayList SortItems = new ArrayList();
SortItems.Add("Item1");
SortItems.Add("Item2");
SortItems.Add("Item3");
SortItems.Add("Item4");
SortItems.Add("Item5");
SortItems.Add("Item6");
SortItems.Add("Item7");
SortItems.Add("Item8");
SortItems.Add("Item9");
SortItems.Add("Item10");
SortItems.Add("Item11");

SortItems.Sort(new CusComparer());


但是,您应该考虑使用类型更强的ArrayList而不是使用List<T>

关于c# - 如何在wpf中按后续编号对数组列表进行排序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13135777/

10-11 17:09