-1

次のようなリストがあります。

List<String> strings = new List<string>();
strings.Add("1 23 4");
strings.Add("1 4 23");

これを並べ替えると、結果が {(1 4 23), (1 23 4)} になります。ただし、通常の文字列ソートでは {(1 23 4), (1 4 23)} となります。

4

1 に答える 1

0
var result = strings.Select(s => new {  
                                    orgstr = s, 
                                    sortstr = String.Join("", s.Split(' ').Select(x => x.PadLeft(10, '0'))) 
                                })
                    .OrderBy(x => x.sortstr)
                    .Select(x => x.orgstr);

テストケース

List<String> strings = new List<string>();
strings.Add("1 23 4 5 6");
strings.Add("1 1 24 2 4");
strings.Add("1 4 23 2 4");
于 2013-04-13T17:50:49.003 に答える