With group by, the first part indicates what item is to be grouped. And after "by", you specify the condition that results in groups.
using System;
using System.Linq;
class Program
{
static void Main()
{
// Input array.
int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// Group elements by IsEven.
var result = from element in array
orderby element
group element by IsEven(element);
// Loop over groups.
foreach (var group in result)
{
// Display key and its values.
Console.WriteLine(group.Key);
foreach (var value in group)
{
Console.WriteLine(value);
}
}
}
static bool IsEven(int value)
{
return value % 2 == 0;
}
}
False
1
3
5
7
9
True
2
4
6
8