簡體   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