gpt4 book ai didi

c# - 使用 LINQ ANY 并且出现 > 1

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

我有一个包含子对象集合的对象列表。我想检查这些对象中的任何一个子对象是否包含特定值,如果包含,则检查该值是否出现在任何其他对象中。

我目前有这个需要扩展以进行第二次检查:

public bool HasAnyTypesMoreThanOnce(IEnumerable<Parent> parents, IEnumerable<string> Types)
{
return parents
.SelectMany(p => p.Children)
.Any(c => Types.Contains(c.Type));
}

我在想这样的事情:

var list = parents
.SelectMany(p => p.children)
.Where(c => Types.Contains(c.Type))
.Select(c => c.Type).ToList();

return list.Count != list.Distinct().Count();

有什么建议吗?

最佳答案

另一种方法是按 Type 分组,如果有任何 Type 重复不止一次,则返回 true,否则返回 false。

return parents.SelectMany(p => p.children)
.Where(c => Types.Contains(c.Type))
.GroupBy(x => x.Type)
.Any(g => g.Count() > 1);

关于c# - 使用 LINQ ANY 并且出现 > 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53651459/

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