• 締切済み

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なら話が早いのですが、そうもいかず…。

みんなの回答

回答No.2

こんなんでいいのかしら 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); } } }

回答No.1

大抵の言語には任意の比較関数を与えてソートの仕方を変えるための仕組みがあると思います。 C#だとこんな感じみたいです。 http://www.atmarkit.co.jp/fdotnet/dotnettips/215arraysort/arraysort.html

関連するQ&A

専門家に質問してみよう