排序字符串数组中的数字

时间:2014-04-02 18:55:28

标签: c# arrays sorting

我有一个字符串数组(concatarray),其中包含

等项目

15.234 Mon 1020.12345 Tue 1111.3521 Wed 121901.23 Thu 13

我希望将它从最大数字到最小数字排序,比如

1901.23 Thu 1320.12345 Tue 1115.234 Mon 1011.3521 Wed 12

我试过

  

的Array.Sort<字符串> (concatarray);

     

Array.Reverse(concatarray);

但是到了

20.12345 Tue 111901.23 Thu 1315.234 Mon 1011.3521 Wed 12

1 个答案:

答案 0 :(得分:5)

对字符串进行排序将使用文本比较对它们进行排序。要对数字进行排序,您需要提取字符串中的数字部分并将其解析为double值:

concatarray =
  concatarray
  .OrderByDescending(i => Double.Parse(i.Split(' ', 2)[0], CultureInfo.InvariantCulture))
  .ToArray();