C# 等效linq查询语法
以下重载的C# 等效linq查询语法,c#,linq,C#,Linq,以下重载的GroupBy的等效查询语法是什么: public static IEnumerable<IGrouping<TKey, TElement>> GroupBy<TSource, TKey, TElement>( this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TEl
GroupBy
的等效查询语法是什么:
public static IEnumerable<IGrouping<TKey, TElement>>
GroupBy<TSource, TKey, TElement>(
this IEnumerable<TSource> source,
Func<TSource, TKey> keySelector,
Func<TSource, TElement> elementSelector
)
“正常”查询语法将返回冗余信息:类别
已由键
属性提供:
var groups = from p in products
from c in p.Categories
let pc = new { Product = p, Category = c }
group pc by pc.Category into g
select g;
这相当于:
var groups =
products.SelectMany(p => p.Categories,
(p, c) => new { Product = p, Category = c })
.GroupBy(p => p.Category);
这个问题在回答时突然出现。组和组之间的表达式是元素选择器。您特意将您特别不想要的信息添加到该元素中。你只需要…不要那样做
var groups = from product in products
from category in product.Categories
group product by category into g
select g;
哦,天哪,我觉得自己很笨。谢谢
var groups = from product in products
from category in product.Categories
group product by category into g
select g;