What are the C # extension methods equivalent to this Linq query?

In this example:

public void Linq40() { int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; var numberGroups = from n in numbers group n by n % 5 into g select new { Remainder = g.Key, Numbers = g }; foreach (var g in numberGroups) { Console.WriteLine("Numbers with a remainder of {0} when divided by 5:", g.Remainder); foreach (var n in g.Numbers) { Console.WriteLine(n); } } } 

What is the pure equivalent of C #? I get it ...

 var numberGroups = numbers.GroupBy(n => n % 5)... 

but the sentence into bit of a mystery, and I cannot figure out how to get the Key from Select .

+4
source share
2 answers

GroupBy returns IEnumerable<T> <IGrouping<TKey, TSource> . In doing so, you can perform the second Select operation, which returns the values ​​as described above:

 var numberGroups = numbers.GroupBy(n => n % 5) .Select(g => new { Remainder = g.Key, Numbers = g }); 
+8
source
 numbers.GroupBy(n => n % 5).Select(g => new { Remainder = g.Key, Numbers = g }); 
+8
source

All Articles