gpt4 book ai didi

c# - 字符串到数组,按第三个字/列排序

转载 作者:行者123 更新时间:2023-11-30 14:23:25 25 4
gpt4 key购买 nike

我有一个包含数字、单词和换行符的字符串,我将其拆分为一个数组。

如果我运行 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

最佳答案

试试这段代码:

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);
}

编辑:谢谢@Kevin!

关于c# - 字符串到数组,按第三个字/列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45488713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com