What is the purpose of the "group by" clause in LINQ?
In LINQ (Language-Integrated Query), the group by clause is used to group elements of a sequence based on a specified key or set of keys. It allows you to organize and categorize data into groups based on common characteristics. The group by clause is particularly useful when you want to perform operations or calculations on groups of related elements. Here's how it works:
Syntax: 'group element by keyExpression'
-
element
: Represents each element in the sequence.
-
keyExpression
: Specifies the expression or property based on which the elements should be grouped.
Here's a complete source code example to illustrate the usage of the "GroupBy" clause along with its output:
using System;
using System.Linq;
using System.Collections.Generic;
class Program
{
static void Main()
{
// Define a class for Product
class Product
{
public string Name { get; set; }
public double Price { get; set; }
}
// Create a list of products
List<Product> products = new List<Product>
{
new Product { Name = "Laptop", Price = 1000 },
new Product { Name = "Mouse", Price = 20 },
new Product { Name = "Keyboard", Price = 30 },
new Product { Name = "Laptop", Price = 1200 },
new Product { Name = "Monitor", Price = 300 },
};
// Use LINQ to group products by their name
var groupedProducts = products.GroupBy(product => product.Name);
// Display the groups and their products
foreach (var group in groupedProducts)
{
Console.WriteLine($"Group: {group.Key}");
foreach (var product in group)
{
Console.WriteLine($" Product: {product.Name}, Price: ${product.Price}");
}
}
}
}
Output
Group: Laptop
Product: Laptop, Price: $1000
Product: Laptop, Price: $1200
Group: Mouse
Product: Mouse, Price: $20
Group: Keyboard
Product: Keyboard, Price: $30
Group: Monitor
Product: Monitor, Price: $300
In this example, we define a Product
class with properties for Name and Price. We create a list of Product
objects called products. Using the GroupBy
clause in LINQ, we group these products based on their names.
The result is a sequence of groups, each containing products with the same name. We then iterate through these groups and display the products within each group. This demonstrates how the GroupBy
clause is used to categorize and organize data into meaningful groups, making it easier to work with and analyze data that shares common characteristics.
The 'group by' clause allows you to organize data into meaningful groups based on specific criteria. It enables you to perform aggregate functions, filtering, or any other operations on groups of related elements. The grouped data can be used to generate reports, perform calculations, or implement custom logic based on the grouped characteristics of the data.