C # 7.1 หรือสูงกว่าการใช้Tuples
และInferred tuple element names
(ปัจจุบันมันทำงานได้เฉพาะกับlinq to objects
และมันก็ไม่ได้รับการสนับสนุนเมื่อต้นไม้จะต้องแสดงออกเช่นsomeIQueryable.GroupBy(...)
. ปัญหา Github ):
// declarative query syntax
var result =
from x in inMemoryTable
group x by (x.Column1, x.Column2) into g
select (g.Key.Column1, g.Key.Column2, QuantitySum: g.Sum(x => x.Quantity));
// or method syntax
var result2 = inMemoryTable.GroupBy(x => (x.Column1, x.Column2))
.Select(g => (g.Key.Column1, g.Key.Column2, QuantitySum: g.Sum(x => x.Quantity)));
C # 3 ขึ้นไปโดยใช้anonymous types
:
// declarative query syntax
var result3 =
from x in table
group x by new { x.Column1, x.Column2 } into g
select new { g.Key.Column1, g.Key.Column2, QuantitySum = g.Sum(x => x.Quantity) };
// or method syntax
var result4 = table.GroupBy(x => new { x.Column1, x.Column2 })
.Select(g =>
new { g.Key.Column1, g.Key.Column2 , QuantitySum= g.Sum(x => x.Quantity) });