空格分隔的数字字符串排序列表

本文关键字:字符串 排序 列表 数字字符 数字 分隔 空格 | 更新日期: 2023-09-27 18:09:14

我有一个这样的列表:

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)}。

空格分隔的数字字符串排序列表

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");