我得到一个 IEnumerable<string>
我想收集所有以相同字符开头的条目。
例如:
Hans
Hannes
Gustav
Klaus
Herbert
Hanne
现在我想找到第一个 2
所在的所有条目字符相同,将返回 Hans, Hannes, Hanne
.
最佳答案
你只需要使用.GroupBy
list.GroupBy(x=>x.Substring(0, n)).OrderByDescending(x=>x.Count()).First()
其中 n
是您要比较的字符数。
还可以添加一个 Where
来过滤您可能有的任何要求:
list.GroupBy(x=>x.Substring(n))
.Where(x=>x.Count() > 1)
.OrderByDescending(x=>x.Count())
.First()
完整示例:
var lst = new string[]
{
"Hans",
"Hannes",
"Gustav",
"Klaus",
"Herbert",
"Hanne"
};
var source = lst.GroupBy(x => x.Substring(0, 2)).OrderByDescending(x => x.Count()).First()
Console.WriteLine(source.Key);
Console.WriteLine(string.Join(",", source));
关于c# - LINQ 获取以相同字符开头的 IEnumerable<string> 的所有条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40231250/