fla*_*mme 2 c# sorting ienumerable icomparer
您好我想要一个排序数组,其中包含:
String[] info = new String[5]{"6,j", "7,d", "12,s", "4,h", "14,s" };
Run Code Online (Sandbox Code Playgroud)
但如果我使用这个:
Array.Sort(info);
Run Code Online (Sandbox Code Playgroud)
输出变为:
"7,d"
"6,j"
"4,h"
"14,s"
"12,s"
Run Code Online (Sandbox Code Playgroud)
但我不会输出:
"14,s"
"12,s"
"7,d"
"6,j"
"4,h"
Run Code Online (Sandbox Code Playgroud)
使用C#最简单的方法是什么?
当我这样做时,我不能让字母数字排序工作:
Array.Sort(info, new AlphanumComparatorFast());
Run Code Online (Sandbox Code Playgroud)
如果找不到using指令或程序集引用,则无法找到类型或命名空间"AlphanumComparatorFast"
是我得到的错误......
Fel*_*ano 11
尝试:
var sortedArray = info.OrderBy(s=>int.Parse(s.Split(',')[0])).ToArray();
Run Code Online (Sandbox Code Playgroud)
这只是通过数字部分排序,但您可以详细说明该示例.这段代码强烈假设总是有逗号分隔符,这可能是生产中的一个问题,做一些更准确的错误处理.如果数组包含一些不符合异常的元素,假设忽略失败的元素是可以接受的,我们可以写:
var sortedArray = info.Where(k=>!string.IsNullOrEmpty(k)&&k.IndexOf(",")!=-1)
.OrderBy(s=>int.Parse(s.Split(',')[0])).ToArray();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1032 次 |
| 最近记录: |