我有一个字符串,其中包含数字、单词和换行符,我将其拆分为数组。
如果我运行Array.Sort(lines),它将按第1列Number对数组进行数字排序。
如何将数组按第3列( Color )按字母顺序排序?
注意:它们不是真实的列,只是分隔单词的空格。
我无法修改字符串以更改结果。
| Number | Name | Color |
|------------|------------|------------|
| 1 | Mercury | Gray |
| 2 | Venus | Yellow |
| 3 | Earth | Blue |
| 4 | Mars | Red |C#
示例:http://rextester.com/LSP53065
string planets = "1 Mercury Gray\n"
+ "2 Venus Yellow\n"
+ "3 Earth Blue\n"
+ "4 Mars Red\n";
// Split String into Array by LineBreak
string[] lines = planets.Split(new string[] { "\n" }, StringSplitOptions.None);
// Sort
Array.Sort(lines);
// Result
foreach(var line in lines)
{
Console.WriteLine(line.ToString());
}所需的排序数组结果
3 Earth Blue
1 Mercury Gray
4 Mars Red
2 Venus Yellow发布于 2017-08-03 15:39:47
试试下面的代码:
string planets = "1 Mercury Gray \n"
+ "2 Venus Yellow \n"
+ "3 Earth Blue \n"
+ "4 Mars Red \n";
var lines = planets.Split("\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
.OrderBy(s => s.Split(' ')[2])
.ToArray();
foreach (var line in lines)
{
Console.WriteLine(line);
}编辑:谢谢@凯文!
https://stackoverflow.com/questions/45488713
复制相似问题