【发布时间】:2020-04-14 00:25:17
【问题描述】:
名称将是单个字符串,例如 string NAME="BILL GATES" 计划是先按姓氏排列,然后按姓氏排列,所以 盖茨比尔,正在发生的事情是它的出现是第一个也是最后一个。
var Q4 = from p in persons
orderby p.Name.Split()[1], p.Name.Split()[0]
select p;
foreach (var Item in Q4)
{
Console.WriteLine($"{Item}");
}
【问题讨论】:
-
你不说问题是什么,但如果
p不是你想要的,不要select p。如果您想要“像字符串 NAME='BILL GATES' 这样的单个字符串”,那么请使用select。此外,letclause 将简化您的orderby并提高效率。 -
在 order by 中调用 Name.Split 不会保存拆分字符串,它只是拆分 Name 以便它可以将其用于 orderby,然后废弃该拆分字符串。您可以在选择 Name.Split()[0] 和 [1] 的查询中拆分它,也可以在查询完成后在 foreach 循环中拆分它。然后当你输出它时,你在使用名字之前使用姓氏。