簡體   English   中英

將字符串數組排序為Int

[英]Sort String Array As Int

有什么方法可以將IComparer與ArrayList.Sort()一起使用來將一組字符串排序為int嗎?

如果它們都是字符串,那么為什么要使用ArrayList? 如果你在NET 2.0或更高版本, List<string>是一個更好的選擇。

如果您使用的是.Net 3.5或更高版本:

var result = MyList.OrderBy(o => int.Parse(o.ToString() ) ).ToList();

當然。 只需創建執行轉換的適當比較器即可。

public class StringAsIntComparer : IComparer {
  public int Compare(object l, object r) {
    int left = Int32.Parse((string)l);
    int right = Int32.Parse((string)r);
    return left.CompareTo(right);
}

根據Joel的解決方案略有不同

string[] strNums = {"111","32","33","545","1","" ,"23",null};
    var nums = strNums.Where( s => 
        {
        int result;
        return !string.IsNullOrEmpty(s) && int.TryParse(s,out result);
        }
    )
    .Select(s => int.Parse(s))
    .OrderBy(n => n);

    foreach(int num in nums)
    {
        Console.WriteLine(num);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM