繁体   English   中英

区分大小写按2个首字母排序

[英]Case sensitive Order by for 2 first letters

我需要一个linq / lambda表达式,该表达式对字符串列表进行排序,但仅对前2个字母进行排序。 大写字母应首先排序。

MyList.Sort((s1, s2) =>
    s1.Substring(0, 2).CompareTo(
    s2.Substring(0, 2)));

这就是我现在所拥有的。 它成功地对前2个字母进行了排序,但是当它区分大小写时就失败了...

编辑:这是结果和工作:

   var sorted = MyList.OrderBy(x =>x[0]).ThenBy(x => x[1]).ToList();

为什么不使用简单的OrderBy().ThenBy执行区分大小写的排序比较,请考虑以下代码:

List<string> unOrderedList = new List<string>() { "bAC", "ABC", "aBc", "abc", "cAb", "Abx", "bbc", "bBx", "cAA" };
var orderedList = unOrderedList.OrderBy(x => x[0]).ThenBy(y=>y[1]).ToList();

在这种情况下, orderedList的输出为:

ABC
Abx
aBc
abc
bAC
bBx
bbc
cAb
cAA

看到这里的示例,您可以看到Abx在列表中的位置比aBc ,您可以在bBxbbc看到类似的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM