我试图找到一种巧妙的方法,使用 linq 来检查 IEnumerable 并找到某些元素的最大出现次数。
"aba".SomeLinqExpression(); // => 'a'
或
(new List<int>{1, 2, 3, 4, 1, 2, 1}).SomLinqExpression(); // => 1
有没有一种简单的内置方法可以做到这一点,我想我需要一个聚合查询,但聚合和计数似乎没有做到这一点。也许是分组?
编辑:澄清
我正在寻求访问最常见的值。我不在乎如何处理关系。
如果我们有一个字符串
"abcda" // note that there are 2 'a' characters.
由于“a”是序列中最常见的内容,因此我希望此操作返回“a”
"abcda".SomeLinqExpression(); // returns 'a'
最佳答案
嗯,我想这会起作用:
"aqejqkndaasaamd".GroupBy(x => x).OrderByDescending(g => g.Count()).First().Key
关于c# - 在 C# 中使用 linq 计算 IEnumerable 中项目的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30405842/