- 締切済み
List内の数字(string型)を並び替えたい
c sharp 環境です。 たとえばですが、 List<string> testlist = new List<string> (); testlist.add("1"); testlist.add("12"); testlist.add("3"); testlist.add("4"); … として、testlist.Sort();で並び替えると、中が文字列なので 1、12…の順番になってしまいます。 これを数字の昇順にしたい(1、2、3…)のですが、可能でしょうか? 数字型のListなら話が早いのですが、そうもいかず…。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
こんなんでいいのかしら using System; using System.Collections.Generic; public class Program { public static void Main() { List<string> testlist = new List<string>(); testlist.Add("1"); testlist.Add("12"); testlist.Add("3"); testlist.Add("4"); testlist.Sort( (x,y) => Int32.Parse(x).CompareTo(Int32.Parse(y)) ); foreach ( string item in testlist ) { Console.WriteLine(item); } } }
- hanabutako
- ベストアンサー率54% (492/895)
大抵の言語には任意の比較関数を与えてソートの仕方を変えるための仕組みがあると思います。 C#だとこんな感じみたいです。 http://www.atmarkit.co.jp/fdotnet/dotnettips/215arraysort/arraysort.html