gpt4 book ai didi

c# - 仅选择列表中多次出现的值 C# Linq

转载 作者:太空宇宙 更新时间:2023-11-03 17:30:46 25 4
gpt4 key购买 nike

我有一个可能包含重复值的列表,我的要求是获取一个子列表或仅包含重复值的列表。例如,考虑以下列表

Cat
Dog
Dog
Mouse
Cat
Dog
Mouse
Cat
Elephant

现在我只想提取 Cat 和 Dog,因为它们分别出现了 3 次。这 3 次每次都可能会改变,可能是 4 次可能是 5 次或其他。

是否有 Linq 查询可以帮助我提取它?

谢谢!我刚开始学习 Linq,所以这个问题听起来有点愚蠢。

最佳答案

您可以您的项目进行分组,然后获取包含任意数量项目的分组:

list.GroupBy(x => x)
.Where(g => g.Count() == 3)
.Select(g => g.Key)
.ToList();

如果您事先不知道计数并且想要列表中最频繁的项目,则需要先获取计数:

var groups = list.GroupBy(x => x).ToList();
var count = groups.Max(g => g.Count());

var items = groups.Where(g => g.Count() == count)
.Select(g => g.Key)
.ToList();

关于c# - 仅选择列表中多次出现的值 C# Linq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28955507/

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