linq 我可以< string>按列表中的整数排序吗?

ki0zmccv  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(157)

例如:

List<string> list = new List<string>{
"1[EMPTY]",  "2[EMPTY]",  "3[EMPTY]",  "4[EMPTY]",  "5[EMPTY]",  "6[EMPTY]",  "7[EMPTY]",  "8[EMPTY]",  "9[EMPTY]",  "10[EMPTY]",  "11[EMPTY]",  "12[EMPTY]"
};

当我使用

list.Sort();

输出:
1 [空] 10 [空] 11 [空] 12 [空] 2 [空] 3 [空] 4 [空] 5 [空] 6 [空] 7 [空] 8 [空] 9 [空]
我想要1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12.我怎样才能解决这个问题呢?
(对不起,我的英语不好:{)

ldioqlga

ldioqlga1#

你可以使用OrderBy。基本上诀窍是排序字符串,这样解析为int。并获得值,直到第一次出现[

List<string> list = new List<string>{
"1[EMPTY]",  "2[EMPTY]",  "3[EMPTY]",  "4[EMPTY]",  "5[EMPTY]",  "6[EMPTY]",  "7[EMPTY]",  "8[EMPTY]",  "9[EMPTY]",  "10[EMPTY]",  "11[EMPTY]",  "12[EMPTY]"
};
            list = list.OrderBy(c => int.Parse(c.Substring(0, c.IndexOf('[')))).ToList();

相关问题