当前位置: 首页 > 知识库问答 >
问题:

如何在wpf中按后续编号对数组列表进行排序?

司空丰
2023-03-14
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

共有3个答案

南门魁
2023-03-14

你的问题并没有说明它会产生什么样的结果。

使用分类列表。当您添加新项目时,它将被排序。http://msdn.microsoft.com/en-us/library/system.collections.sortedlist.aspx 缺点是,输入不能重复。

吴升
2023-03-14

结果是这样排序的,因为它对字符串使用字典排序。比较算法从左到右比较两个字符串,并且由于"1"小于"9""10"也将小于"9"

您可以用零填充字符串的数字部分,例如“Item05”,而不是“Item5”

更通用和灵活的方法是使用ArrayList。排序(ICompler),并实现一个理解字符串格式并能够正确排序字符串的ICompler

白宏放
2023-03-14

构建自定义比较器:

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());

但是不要使用<代码> ARAYLISTAB/CODE >,应该考虑使用<代码>列表

 类似资料:
  • 问题内容: 比方说你有一个的对象。 如果它们都具有int GoalScored变量,则如何排序?你如何按GoalScored排序? 问题答案: 你可以使用Collections.sort自定义Comparator 。 比较部分也可以这样写: 或者,你可以制作。这定义了所有对象的自然顺序。使用a 更灵活,因为不同的实现可以按名称,年龄等进行排序。

  • 问题内容: 我想知道,流(或收集器)中是否已经有一个已实现的功能,已将列表作为值进行了排序。例如,以下代码均产生按年龄分组的按性别分组的人员清单。第一个解决方案具有一些开销排序(看起来有些sc琐)。第二种解决方案需要对每个人进行两次检查,但是必须做到很好。 首先排序,然后分组为一个流: 首先分组,然后对每个值进行排序: 我只是想知道,是否已经实现了某项功能,该功能可以一次运行,例如。 问题答案:

  • 我想知道,流(或收集器)中是否已经实现了将列表排序为值的功能。例如,以下代码均生成按年龄排序的按性别分组的人员列表。第一个解决方案有一些开销排序(看起来有点邋遢)。第二种解决方案需要对每个人进行两次检查,但工作做得很好。 首先排序,然后在一个流中分组: 首先分组,然后对每个值进行排序: 我只是想知道,是否已经实现了一些东西,可以在一次运行中完成,比如。

  • 正如我的问题所描述的,如何在java中对类型数组的列表进行排序? 这是我的ListClass 这是我的驾驶程序 现在,我希望在ListClass中有一个通用排序方法,可以对通过驱动程序生成的任何类型的列表(字符串、整数、双精度、浮点等)进行排序。

  • 我有一个包含下一个数据的ArrayList:(int)、(int)、(int)、(String)。我按字段对此数组进行排序。如果长度与提交的相等,我如何赋予优先级(优先级将具有具有水平位置的长度)。例如,给定输入: 输出应为: 以下是我所拥有的:

  • 问题内容: 在SQL中,有没有一种方法可以 按键组 顺序添加行号? 假设一个带有任意(CODE,NAME)元组的表。表格示例: 使用CODE作为分组属性的所需投影: 谢谢, 问题答案: SQL服务器 甲骨文 Postgres Sybase公司 MySQL不支持。这涵盖了大多数基地。