Jon*_*han 1 .net c# linq group-by
我想在Linq中做一个GroupBy和一个Select,但是下面的代码不能编译:
foreach (string fooName in fooList.GroupBy(f => f.Name).Select(f => f.Name))
{
...
}
Run Code Online (Sandbox Code Playgroud)
为什么我不能f => f.name在我的Select条款中使用?更重要的是,有什么方法可以解决这个问题吗?
GroupBy返回一个序列IGrouping<TKey, TSource>,因此方法中的lambda参数Select是type IGrouping<TKey, TSource>,而不是TSource.相反,你可以这样做:
foreach (string fooName in fooList.GroupBy(f => f.Name).Select(grouping => grouping.Key))
{
...
}
Run Code Online (Sandbox Code Playgroud)
但无论如何,有一种更简单的方法可以实现相同的结果:
foreach (string fooName in fooList.Select(f => f.Name).Distinct())
{
...
}
Run Code Online (Sandbox Code Playgroud)