【发布时间】:2011-09-17 18:58:56
【问题描述】:
我正在尝试对一个字符串数字数组进行排序,我希望它们按数字排序。
问题是我无法将数字转换为整数。
代码如下:
string[] things= new string[] { "105", "101", "102", "103", "90" };
foreach (var thing in things.OrderBy(x => x))
{
Console.WriteLine(thing);
}
输出:
101, 102, 103, 105, 90
我想要:
90, 101, 102, 103, 105
编辑:
输出不能是090, 101, 102...
将代码示例更新为“things”而不是“sizes”。数组可以是这样的:
string[] things= new string[] { "paul", "bob", "lauren", "007", "90" };
这意味着它需要按字母顺序和数字排序:
007, 90, bob, lauren, paul
【问题讨论】:
-
为什么不能将它们转换为 int?
-
“sizes”可以是“name”之类的其他内容。代码示例只是简化了。
-
会有负数吗?它们都会是整数吗?整数的范围是多少?
-
"things" 可以是任何类型的字符串。我希望将列表按逻辑排序给非计算机知识的人。负数应该在正数之前。就字符串长度而言,不会超过 100 个字符。
-
你想走多远?
image10应该在image2之后吗?January应该在February之前出现吗?
标签: c# linq sorting alphabetical alphanumeric