public class Example
{
public static void Main()
{
Console.Write("<< Linq - GroupBy 출력 예제 >> \n");
// Create a list of pets.
List<Pet> petsList =
new List<Pet>{ new Pet { Name="CodeA", Age=8.3 },
new Pet { Name="CodeB", Age=4.9 },
new Pet { Name="CodeC", Age=1.5 },
new Pet { Name="CodeD", Age=4.3 } };
// Math.Floor(pet.Age)를 이용하여 그룹핑.
var query = petsList.GroupBy(
pet => Math.Floor(pet.Age),
pet => pet.Age,
(baseAge, ages) => new
{
Key = baseAge,
Count = ages.Count(),
Min = ages.Min(),
Max = ages.Max()
});
// 익명타입을 출력.
foreach (var result in query)
{
Console.WriteLine("\nAge group: " + result.Key);
Console.WriteLine("Number of pets in this age group: " + result.Count);
Console.WriteLine("Minimum age: " + result.Min);
Console.WriteLine("Maximum age: " + result.Max);
}
Console.WriteLine(System.Environment.NewLine);
Console.WriteLine("Press any key to exit");
Console.ReadKey();
}
}
class Pet
{
public string Name { get; set; }
public double Age { get; set; }
}