我有一个这样的清单:
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)}然而。
答案 0 :(得分: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");