In this article, we will learn the Group y multiple Columns in LINQ C#. The ‘group by ‘method in LINQ to group data based on one or more columns.
Here’s an example of how to Group by multiple columns using LINQ in C#.
Create an Asp.NET Core MVC or Web API Project
Assuming you have Visual Studio 2019 or Visual Studio 2022 installed, follow these steps to create a new ASP.NET Core Project
- Open the visual studio (IDE).
- Click on the “Create new project” option.
- Choose “ASP.NET Core Web Application” from the list of available templates.
- Click the Next button.
- The configure a new project, specify the name and location of your project.
- Click the “Next” button.
- Then select .Net Core as the runtime and choose the version from the dropdown list at the top.
- Make sure to uncheck the checkboxes for “Enable Docker Support” and “Configure for HTTPS” since we won’t be using authentication.
- Click the “Create” button
Consider an example Employee class with properties like FirstName, LastName, City, and State. We’ll group employees based on their City and State.
Create a Model
namespace WEB_API_without_EF.Models
{
public class Employees
{
public int ID { get; set; }
public string Company { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string JobTitle { get; set; }
public string Address { get; set;}
public string City { get; set; }
public string state { get; set; }
}
}
Create a Controller
namespace WEB_API_without_EF.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class EmployeeController : ControllerBase
{
[HttpGet("GetgroupBy")]
public IActionResult GetgroupBy()
{
List<Employees> employees = new List<Employees>
{
new Employees{FirstName="Anna", LastName="Bedecs", Company="Company A", City="Seattle",state="WA"},
new Employees{FirstName="Antonio", LastName="Gratacos Solsona", Company="Company B", City="Boston",state="MA"},
new Employees{FirstName="Thomas" ,LastName="Axen", Company="Company C", City="Seattle",state="WA"},
new Employees{FirstName="Christina", LastName="Lee", Company="Company D", City="New York",state="NY"},
new Employees{FirstName="Martin" ,LastName="O’Donnell", Company="Company E", City="Minneapolis",state="MN"},
new Employees{FirstName="Francisco", LastName="Pérez-Olaeta", Company="Company F", City="Milwaukee",state="WI"},
};
var groupemployee = from emp in employees
group emp by new { emp.City, emp.state } into empgroup
select new
{
Name =$"City : {empgroup.Key.City} State : {empgroup.Key.state}",
employees= empgroup.ToList(),
};
return Ok(groupemployee);
}
}
}
Output:
See More :