假設我有以下列表:var lettersAndNumbers = new List<string> { "5", "kl", "1", "st", "3" };如何OrderBy對列表進行排序,我可以在其中指定kl第一項、st下一項以及剩余序列應按數字從低到高排序?我知道我需要使用自定義comparer. 我嘗試并創建了一個comparer類實現ICompareable,但我似乎無法使其工作。任何幫助深表感謝。
1 回答

慕后森
TA貢獻1802條經驗 獲得超5個贊
你不需要 acomparer
來實現這一點。嘗試這樣的事情:
var res = lettersAndNumbers.OrderBy(c => !int.TryParse(c, out var temp) ? c : temp.ToString("D10")) .OrderBy(c=> !char.IsDigit(c[0]) ? 0 : 1).ToList();
- 1 回答
- 0 關注
- 103 瀏覽
添加回答
舉報
0/150
提交
取消