我有一个字符串数组(concatarray),其中包含
等项目 15.234 Mon 10
,20.12345 Tue 11
,11.3521 Wed 12
,1901.23 Thu 13
我希望将它从最大数字到最小数字排序,比如
1901.23 Thu 13
,20.12345 Tue 11
,15.234 Mon 10
,11.3521 Wed 12
我试过
的Array.Sort<字符串> (concatarray);
Array.Reverse(concatarray);
但是到了
20.12345 Tue 11
,1901.23 Thu 13
,15.234 Mon 10
,11.3521 Wed 12
答案 0 :(得分:5)
对字符串进行排序将使用文本比较对它们进行排序。要对数字进行排序,您需要提取字符串中的数字部分并将其解析为double
值:
concatarray =
concatarray
.OrderByDescending(i => Double.Parse(i.Split(' ', 2)[0], CultureInfo.InvariantCulture))
.ToArray();