【发布时间】:2016-10-26 05:05:05
【问题描述】:
我有以下字符串列表:
List<string> a = new List<string>();
a.Add("2015");
a.Add("2015 /M1");
a.Add("2015 /M2");
a.Add("2015 /M9");
a.Add("2015 /M10");
a.Add("2015 /M11");
a.Add("2015 /M12");
a.Add("2015 /M3");
a.Add("2015 /M4");
a.Add("2015 /M5");
a.Add("2015 /M6");
a.Add("2015 /M7");
a.Add("2015 /M8");
当我调用排序函数a.sort() 时,它的排序如下:
2015
2015 /M1
2015 /M11
2015 /M12
2015 /M2
2015 /M3
2015 /M4
2015 /M5
2015 /M6
2015 /M7
2015 /M8
2015 /M9
但是我该如何修改使它看起来像下面。
2015
2015 /M1
2015 /M2
2015 /M3
2015 /M4
2015 /M5
2015 /M6
2015 /M7
2015 /M8
2015 /M9
2015 /M10
2015 /M11
2015 /M12
我在其他列表项中也有相同的模式,例如 2015 Q/12、2015 Q/11 等。
【问题讨论】:
-
实现 IComparer 接口并执行您的自定义排序算法并将其传递给 Sort 方法。 MSDN 是你的朋友。
-
您的输入格式是否总是“yyyy X/MM”,yyyy 是年份,X 是任意随机字符,MM 是月份?对您的问题的简短回答是按 int 排序,而不是按字符串排序。
-
我需要在字符串列表中完成它,因为我有 2015 Q/1、2015 Q/2 以及这些值是动态创建的。