C# - 对字符串的 ArrayList 进行排序

标签 c# sorting arraylist

我有一个 ArrayList 字符串,如下所示,我想输出一个以特定方式排序的新 ArrayList。但不确定对它进行排序的好方法。非常感谢您的帮助!

原始(可以是任意顺序):

1:1
0:0
0:1
2:1
1:0
2:0

输出:

2:0
2:1
1:0
1:1
0:0
0:1

最佳答案

同时 K Ivanovright idea , 这是一个可能更容易看的版本:

// Not sure what to call the "n:n" groupings.  Assume
// original is in an ArrayList named "pairs".
IEnumerable<string> sortedPairs =
    from pair in pairs.Cast<string>()
    let parts = pair.Split(':')
    let parsed = new { 
        Left = Int32.Parse(parts[0]), 
        Right = Int32.Parse(parts[1]),
    }
    orderby parsed.Left descending, parsed.Right
    select pair;

请注意,对于这样的解析,正则表达式可能有点矫枉过正(模式非常简单,也非常清晰)。

此外,根据您的示例,它假设两边都有数字。它在返回结果时也不会以任何方式改变字符串。

关于C# - 对字符串的 ArrayList 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5527230/

相关文章:

c# - 处理州和国家(或省): best way to implement

c# - 锁定释放 BulkCollector 和 FatalExecutionEngineError 异常

sorting - java7 中的 Collections.sort() 问题

php - PHP 和 MySQL 中的实时搜索(不适用于数组?)

Java - 数据结构设计 - 固定大小、随机访问、线程安全、排序集合

java - 仅打印以 pre Java 开头的单词

java - 从保存在sharedPreferences中的Arraylist<object>中删除一个对象

c# - 如何在超时发生后处理 NotifyIcon (C#)

c# - 使用 nunit 控制台传递测试用例参数

java - 如何在特定字符后删除 arraylist 元素中的文本?