gpt4 book ai didi

c# - LINQ 返回分组为匿名类型的数据子集

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

我有一个人员列表,我想使用 LINQ(查询语法)来获取包含所有名字和所有第二个名字的匿名类型。

如果我要使用 foreach:

var firstNames = new HashSet<string>();
var secondNames = new HashSet<string>();

foreach (Person p in ListOfPersons)
{
firstNames.Add(p.firstName);
secondNames.Add(p.secondName);
}

返回匿名类型的等效且高效的 LINQ 语句是什么?例如,allNames.FirstNames 和 allNames.SecondNames。

编辑:当我说高效时,我的意思是它在 ListOfPersons 上循环一次,如上面的 foreach 示例。

编辑 2:名称应该不同;我在 foreach 示例中将 List<> 更改为 HashSet<>

最佳答案

如果您不想重复 ListOfPersons 两次,我在 linq 中看到的唯一方法是

var firstNames = new List<string>();
var secondNames = new List<string>();

persons.Aggregate(Tuple.Create(firstNames, secondNames), (tuple, person) =>
{
tuple.Item1.Add(person.firstName);
tuple.Item2.Add(person.secondName);
return tuple;
});

但我认为 foreach 更好。

关于c# - LINQ 返回分组为匿名类型的数据子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24298020/

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