我有一个 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 Ivanov有 right 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/