首页 > 解决方案 > 我可以对列表进行排序吗通过它们里面的整数?

问题描述

例如;

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。我怎么解决这个问题?

(对不起,我的英语不好:{)

标签: c#

解决方案


您可以使用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();

推荐阅读