假设我有以下列表: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 关注
- 78 浏览
添加回答
举报
0/150
提交
取消