gpt4 book ai didi

linq - 如何访问 linq 查询返回的分组值

转载 作者:行者123 更新时间:2023-12-01 04:34:18 24 4
gpt4 key购买 nike

我有以下代码:

List<Person> people = new List<Person>
{
new Person{ Id = 1, Name = "Bob"},
new Person{ Id = 2, Name = "Joe"},
new Person{ Id = 3, Name = "Bob"}
};

var peopleGroupedByName = from p in people
group p by p.Name;

//get all groups where the number of people in the group is > 1

我一直想不出如何处理 linq 查询返回的值,以便能够过滤所有返回的组,这样我就只有具有多个组的组其中的项目。

此刻我正在用头撞墙,我想不出在谷歌搜索中使用什么关键字才能自己弄清楚。

我非常感谢任何有关如何在 Linq 中执行此操作的帮助,因为它看起来应该非常简单。

最佳答案

List<Person> people = new List<Person> {
new Person{ Id = 1, Name = "Bob"},
new Person{ Id = 2, Name = "Joe"},
new Person{ Id = 3, Name = "Bob"}
};

var peopleGroupedByName = from p in people
group p by p.Name into peopleGroup
where peopleGroup.Count() > 1
select peopleGroup;

//get all groups where the number of people in the group is > 1

或者,where peopleGroup.Skip(1).Any() 正如 Mehrdad 所建议的那样,由于 Count() 遍历整个组的内容,而 Skip(1).Any() 仅在前 2 个元素上 - (有关详细信息,请参阅他的评论;Count 适用于分组子句) .

旁白:为了可读性,我更喜欢始终使用 .GroupBy(... 扩展方法语法或 < strong>group ... by ... into ... 查询语法,但不能同时使用。

关于linq - 如何访问 linq 查询返回的分组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1497545/

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