Ad Code

✨🎆 JOIN MERN, JAVA, PYTHON, AI, DEVOPS, SALESFORCE Courses 🎆✨

Get 100% Placement Oriented Program CLICK to new more info click

LINQ to ASP.NET CORE MVC by Shiva Sir

✅ LINQ in C# – Complete In-Depth Guide

 with Examples



LINQ is one of the most powerful features of C# that every .NET developer must learn. In this tutorial, you will understand LINQ from basics to advanced with arrays, collections, ASP.NET Core MVC examples, and Join operations.


🔷 What is LINQ?

LINQ (Language Integrated Query) is a .NET feature that allows you to query data directly inside C# code using SQL-like or method-chaining syntax.

LINQ can be used to query:

  • ✅ Arrays
  • ✅ Collections (List, Dictionary, etc.)
  • ✅ Databases (Entity Framework)
  • ✅ XML
  • ✅ JSON

🔷 Types of LINQ Syntax

  • Query Syntax (SQL-like)
  • Method Syntax (Fluent / Chaining)
  • Mixed Syntax (Less Common)

✅ Why LINQ?

❌ Without LINQ

foreach (var item in list)
{
    if (item > 10)
        result.Add(item);
}

✅ With LINQ

var result = list.Where(x => x > 10);
  • ✅ Clean Code
  • ✅ Less Lines of Code
  • ✅ Readable
  • ✅ Powerful

🔹 LINQ Basics

✅ Import Namespace

using System.Linq;

🔹 LINQ Syntax Examples

1️⃣ Query Syntax (SQL-like)

var result = from n in numbers
             where n > 5
             select n;

2️⃣ Method Syntax (Recommended)

var result = numbers.Where(n => n > 5);

✅ Method syntax is preferred in real-world projects


🔹 LINQ with Arrays

Example 1: Filter Even Numbers

int[] numbers = { 1, 2, 3, 4, 5, 6, 7 };

var evenNumbers = numbers.Where(n => n % 2 == 0);

foreach (var n in evenNumbers)
{
    Console.WriteLine(n);
}

Output: 2, 4, 6

Example 2: Select / Projection

var squares = numbers.Select(n => n * n);

Example 3: Order By

var sortedDesc = numbers.OrderByDescending(n => n);

Example 4: Aggregation Functions

numbers.Sum();
numbers.Max();
numbers.Min();
numbers.Average();
numbers.Count();

🔹 LINQ with Collections (List<T>)

Employee Model

class Employee
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Department { get; set; }
    public int Salary { get; set; }
}

Sample Data

List<Employee> employees = new List<Employee>
{
    new Employee { Id=1, Name="Amit", Department="IT", Salary=40000 },
    new Employee { Id=2, Name="Neha", Department="HR", Salary=30000 },
    new Employee { Id=3, Name="Rahul", Department="IT", Salary=50000 },
    new Employee { Id=4, Name="Pooja", Department="Finance", Salary=45000 }
};

Example: Where (Filter)

var itEmployees = employees.Where(e => e.Department == "IT");

Output: Amit, Rahul


OrderBy + ThenBy

var sortedEmployees = employees
    .OrderBy(e => e.Department)
    .ThenByDescending(e => e.Salary);

🔹 Advanced LINQ Operators

First / FirstOrDefault

employees.First(e => e.Department == "HR");
employees.FirstOrDefault(e => e.Department == "Admin");

Single / SingleOrDefault

employees.Single(e => e.Id == 1);

Any / All

employees.Any(e => e.Salary > 60000);
employees.All(e => e.Department == "IT");

🔹 GroupBy Example

var groupByDept = employees.GroupBy(e => e.Department);
var groupByDept = employees
.GroupBy(e => e.Department)
.Select(g => new
{
Department = g.Key,
TotalEmployees = g.Count()
});

🔷 LINQ Join Example

Query Syntax

var result = from s in students
             join c in courses
             on s.CourseId equals c.Id
             select new
             {
                 StudentName = s.Name,
                 CourseName = c.CourseName,
                 Marks = s.Marks
             };

Method Syntax

var result = students.Join(courses,
    s => s.CourseId,
    c => c.Id,
    (s, c) => new
    {
        StudentName = s.Name,
        CourseName = c.CourseName,
        Marks = s.Marks
    });

🔍 1. Filtering (Where)

👉 Get employees with salary > 50,000

var highSalary = employees.Where(e => e.Salary > 50000);

foreach (var emp in highSalary)
{
Console.WriteLine(emp.Name);
}

🔍 2. Sorting (OrderBy / OrderByDescending)

var sorted = employees.OrderByDescending(e => e.Salary);

foreach (var emp in sorted)
{
Console.WriteLine(emp.Name + " - " + emp.Salary);
}

🔍 3. Selecting Specific Fields (Select)

var names = employees.Select(e => e.Name);

foreach (var name in names)
{
Console.WriteLine(name);
}

🔍 4. GroupBy + Count (Important ⭐)

👉 Count employees in each department

var groupByDept = employees
.GroupBy(e => e.Department)
.Select(g => new
{
Department = g.Key,
Count = g.Count(),
AvgSalary = g.Average(e => e.Salary)
});

foreach (var item in groupByDept)
{
Console.WriteLine($"{item.Department} - Count: {item.Count}, AvgSalary: {item.AvgSalary}");
}

🔍 5. First / FirstOrDefault

var firstIT = employees.FirstOrDefault(e => e.Department == "IT");

Console.WriteLine(firstIT?.Name);

🔍 6. Any / All

bool hasHighSalary = employees.Any(e => e.Salary > 70000);
bool allAbove20 = employees.All(e => e.Age > 20);

Console.WriteLine(hasHighSalary);
Console.WriteLine(allAbove20);

🔍 7. Max / Min / Sum / Average

int maxSalary = employees.Max(e => e.Salary);
int totalSalary = employees.Sum(e => e.Salary);
double avgSalary = employees.Average(e => e.Salary);

Console.WriteLine(maxSalary);
Console.WriteLine(totalSalary);
Console.WriteLine(avgSalary);

🔍 8. Query Syntax (SQL Style)

👉 Same GroupBy using query syntax

var result = from e in employees
group e by e.Department into g
select new
{
Department = g.Key,
Count = g.Count()
};

foreach (var item in result)
{
Console.WriteLine(item.Department + " - " + item.Count);
}

🔍 9. Multiple Conditions

var filtered = employees
.Where(e => e.Department == "IT" && e.Salary > 60000);

foreach (var emp in filtered)
{
Console.WriteLine(emp.Name);
}

🔥 10. Real Interview Scenario (Advanced)

👉 Highest paid employee in each department

var highestSalaryByDept = employees
.GroupBy(e => e.Department)
.Select(g => g.OrderByDescending(e => e.Salary).First());

foreach (var emp in highestSalaryByDept)
{
Console.WriteLine($"{emp.Department} - {emp.Name} - {emp.Salary}");
}

Second Highest Salary
var secondMaxSalary = employees
.Select(e => e.Salary)
.Distinct()
.OrderByDescending(s => s)
.Skip(1)
.FirstOrDefault();


Console.WriteLine(secondMaxSalary);


🚀 Summary (Important Concepts)

  • Where → filter

  • Select → projection

  • GroupBy → grouping

  • OrderBy → sorting

  • Count / Sum / Avg → aggregation

  • First / Any / All → condition checking

MethodIf 1 matchIf multiple matchesIf no match
First✅ returns first✅ returns first❌ Exception
FirstOrDefault✅ returns first✅ returns first✅ null/default
Single✅ returns element❌ Exception❌ Exception
SingleOrDefault✅ returns element❌ Exception✅ null/default

Post a Comment

0 Comments