对不起,我连续问了太多问题.
我有一个像这样的字符串列表:
"firstnumber-lastnumber"
我想按第一个数字排序,然后按最后一个数字排序
例如,如果我有:
"2-43"
"1-11"
"1-9"
Run Code Online (Sandbox Code Playgroud)
排序后应该是这样的:
"1-9"
"1-11"
"2-43"
Run Code Online (Sandbox Code Playgroud)
我使用了这个LINQ查询:
numbers.OrderBy(s => s.Split('-')[0]).ThenBy(s => s.Split('-')[1]);
Run Code Online (Sandbox Code Playgroud)
但是这个查询按字符串逻辑排序,而不是按逻辑排序.
所以,如果我有2和11,我希望2在11之前来
(字符串逻辑的排序顺序是11之前的2,因为它以'1'开头)
非常感谢您的帮助
用于int.Parse(str)转换str为数字.
numbers.OrderBy(s => int.Parse(s.Split('-')[0])).ThenBy(s => int.Parse(s.Split('-')[1]));
Run Code Online (Sandbox Code Playgroud)