将字符串数组排序为整数,但可以有非整数值

时间:2014-08-14 13:09:15

标签: c# arrays parsing sorting

1
12
9
11
Some other String
13
22

因此,鉴于以上String[],我想将它排序为好像它们是整数。 如果我不必处理随机出现的非int值,那么我只会使用:

string[] SortedArray = UnsortedArray.OrderBy(o => int.Parse(o)).ToArray(); 

然而,一旦达到Some other String

,这将是例外

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

您可以使用以下内容:

string[] SortedArray = UnsortedArray
    .OrderBy(z => 
    {
        int tmp;
        if (int.TryParse(z, out tmp))   // Take care of culture
        {
            return tmp;
        }

        return int.MinValue;    // Or MaxValue depending if non-numbers should
                                // be first or last
    })
    .ToArray();