我注意到两个LINQ查询都产生相同的输出。请问这两个查询分组有什么区别?是因为into
可以按2个元素分组吗?
var groupBy = from n in numbers
group n by n;
和:
var groupBy = from n in numbers
group n by n into g
select g;
区别在方法语法上立即突出:
var groupBy = numbers.GroupBy(n => n);
与(一起into
)
var groupBy = numbers.GroupBy(n => n).Select(g => g);
现在,您的示例对于说明实际差异并不太有用,因为每个组只是一个项目,所以让我们来看这个示例:
var group = from c in Company
group c by c.City;
如果这是我们所需要的,按城市列出公司,我们就完成了。但是,如果我们想对分组的结果做任何事情,我们需要into
和select
,例如:
var group = from c in Company
group c by c.City
into cg
select new
{
City = cg.Key,
NumberOfCompanies = cg.Count()
};
在方法语法中:
var group = Companies
.GroupBy(c => c.City)
.Select(gc => new
{
City = cg.Key,
NumberOfCompanies = cg.Count()
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句