你好,我确实想要一个数组,其中包含:
String[] info = new String[5]{"6,j", "7,d", "12,s", "4,h", "14,s" };
但是如果我使用这个:
Array.Sort(info);
输出变为:
"7,d"
"6,j"
"4,h"
"14,s"
"12,s"
但我不会输出为:
"14,s"
"12,s"
"7,d"
"6,j"
"4,h"
在 C# 中/使用 C# 最简单的方法是什么??
当我这样做时,我无法让字母数字排序工作:
Array.Sort(info, new AlphanumComparatorFast());
无法找到类型或命名空间“AlphanumComparatorFast” 您缺少 using 指令或程序集引用
是我得到的错误...
最佳答案
尝试:
var sortedArray = info.OrderBy(s=>int.Parse(s.Split(',')[0])).ToArray();
这仅按数字部分排序,但您可以详细说明该示例。此代码强烈假设始终存在逗号分隔符,这可能是生产中的一个问题,请进行更准确的错误处理。 如果数组包含一些不符合异常的元素,只要忽略失败的元素是可以接受的,我们可以这样写:
var sortedArray = info.Where(k=>!string.IsNullOrEmpty(k)&&k.IndexOf(",")!=-1)
.OrderBy(s=>int.Parse(s.Split(',')[0])).ToArray();
关于C# 用数字对数组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8886401/