我有以下包含数字的字符串数组
string[] arr = { "3", "1", "6", "10", "5", "13" };
如果我arr.OrderBy(x=>x)
我得到了以下结果
1
10
13
3
五
6
预期结果(在数组中):
1
3
五
6
10
13
任何人都有更好,更简单的解决方案。
答案 0 :(得分:2)
这是因为您进行了string
比较 - 您应该将其更改为int
比较
string[] arr = { "3", "1", "6", "10", "5", "13" };
var result = arr.OrderBy(int.Parse).ToArray();
答案 1 :(得分:1)
是的,您可以在LINQ中使用int.Parse()
,如下所示:
var resultArray = arr.OrderBy(x => int.Parse(x)).ToArray();
您可以查看此Example