【发布时间】:2017-12-20 09:08:00
【问题描述】:
我有以下方式的字符串:-
string[] things = new string[] { "1", "10", "2", "1_1", "2_1","3_1" };
想要的输出是:
"1",
"1_1",
"2",
"2_1",
"3_1",
"10",
如何使用 LINQ 实现这一点?
【问题讨论】:
-
你总是有那种带“_”的格式吗?或者你还有其他角色吗?你能解释一下你在什么情况下需要这个吗?
-
那些不是特殊字符。他们只是角色。您有一个 字符串 列表,而不是数字,这意味着它们按字母顺序排序。为什么
"10"应该排在最后?你想要什么样的排序?规则是什么? -
OrderBy 允许您指定任何值作为键,而不仅仅是原始值。您可以解析字符串并返回双/十进制键
-
欢迎来到 StackOverflow。如果您至少发布自己的尝试来展示您如何尝试解决该问题,它将大大提高您的问题的质量。这也是人们期望在这里看到的 ;) 至少你自己一点点努力 :) 好运
-
排序规则是:第一个数字,然后如果有下划线,则优先,特殊字符后根据数字排序。下划线描述字符串是子部分。表示“1_1”是 1 的子部分