按姓氏排序的名称列表
Posted
技术标签:
【中文标题】按姓氏排序的名称列表【英文标题】:List of names sorting them by LastName 【发布时间】:2022-01-14 16:39:23 【问题描述】:我需要在一行中读取带有','
的名称列表,例如:
John Doe, Johnny Di, ...
我是一个初学者,所以我真的不知道如何正确地从列表中读取,但这就是我设法弄乱的
var names = new List<string>();
string name1 = Console.ReadLine();
while (name1 != "")
names.Add(name1);
name1 = Console.ReadLine();
var res = from name in names
orderby name.Split(" ")[1]
ascending
select name;
【问题讨论】:
var names = Console.ReadLine().Split(',')
?
您的代码不会读取以逗号分隔的名称列表,而是一次读取一个名称,直到输入空白为止。
【参考方案1】:
类似这样的:
var res = Console
.ReadLine()
.Split(',', StringSplitOptions.TrimEntries)
.OrderBy(name => name
.Split(' ', StringSplitOptions.RemoveEmptyEntries)
.LastOrDefault(),
StringComparer.OrdinalIgnoreCase)
.ToList(); // .ToArray(); if you want an array
我们来了
-
读取用户输入 -
Console.ReadLine()
- 所有名称以逗号分隔(例如 John Doe, Johnny Di, John Smith
)
在修剪每个项目时按,
拆分用户输入(让我们保持友好,并容忍逗号前后的空格,如John Smith, Jack Doe
)
订购商品:我们Split
name
获取姓氏。 LastOrDefault
为姓氏
让我们有一个列表 (List<string>
) 作为res
【讨论】:
以上是关于按姓氏排序的名称列表的主要内容,如果未能解决你的问题,请参考以下文章