在linq中对包含Numbers的字符串数组进行排序

时间:2017-03-29 06:56:53

标签: c# linq

我有以下包含数字的字符串数组 string[] arr = { "3", "1", "6", "10", "5", "13" }; 如果我arr.OrderBy(x=>x)我得到了以下结果 1 10 13 3 五 6 预期结果(在数组中): 1 3 五 6 10 13  任何人都有更好,更简单的解决方案。

2 个答案:

答案 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