using System.Collections.Generic;
public class DepartmentStudentCount
public int Count { get; set; }
public string DepartmentName { get; set; }
public int DepartmentId { get; set; }
public int StudentId { get; set; }
public string StudentName { get; set; }
public int DepartmentId { get; set; }
public int DepartmentId { get; set; }
public string DepartmentName { get; set; }
public static void Main()
List<Student> studentDetails = new List<Student>()
{( new Student() { StudentId=100, StudentName="Jake", DepartmentId=1 }),
( new Student() { StudentId=101, StudentName="Ram", DepartmentId=1 }),
( new Student() { StudentId=103, StudentName="Kev", DepartmentId=2 }),
( new Student() { StudentId=104, StudentName="John", DepartmentId=3 }),
( new Student() { StudentId=105, StudentName="Ak", DepartmentId=0 })
List<Department> departments = new List<Department>()
new Department(){DepartmentId=1, DepartmentName="Physics" },
new Department(){DepartmentId=2, DepartmentName="Chemistry" },
new Department(){DepartmentId=3, DepartmentName="Maths" },
new Department(){DepartmentId=4, DepartmentName="Biology" },
new Department(){DepartmentId=5, DepartmentName="Social Sience" },
new Department(){DepartmentId=6, DepartmentName="Zoology" }
var countList = departments.Select(x => new DepartmentStudentCount() {
DepartmentId = x.DepartmentId,
DepartmentName = x.DepartmentName,
Count = studentDetails.Where(a => a.DepartmentId == x.DepartmentId).Count()
foreach (var c in countList) { Console.WriteLine("Department: " + c.DepartmentName + " Count: " + c.Count); }