Master technical and career interviews with structured answers—short definition, real examples, pitfalls, and how to answer in 60–90 seconds.
Short answer: How to group join with multiple collections? Explain a bit more var groupJoin = from d in departments join e in employees on d.Name equals e.Department into empGroup select new { Department = d.Name, Employ…
Short answer: int pageNumber = 2; int pageSize = 2; var page = employees int pageNumber = 2; int pageSize = 2; var page = employees int pageNumber = 2; int pageSize = 2; var page = employees int pageNumber = 2; int pageS…
Short answer: How to use LINQ for paging data? int pageNumber = 2; int pageSize = 2; var page = employees .OrderBy(e => e.Id) .Skip((pageNumber - 1) * pageSize) .Take(pageSize); Explanation: Retrieve specific pages fr…
Short answer: var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxS…
Short answer: How to find max salary per department? var maxSalaryPerDept = employees .GroupBy(e => e.Department) .Select(g => new { Department = g.Key, MaxSalary = g.Max(e => e.Salary) }); How to find max salar…
Short answer: .SequenceEqual(anotherList.Select(e => e.Id).OrderBy(id => id)); .SequenceEqual(anotherList.Select(e => e.Id).OrderBy(id => id)); .SequenceEqual(anotherList.Select(e => e.Id).OrderBy(id =>…
Short answer: How to check sequence equality ignoring order? Explain a bit more bool areEqual = employees.Select(e => e.Id).OrderBy(id => id) .SequenceEqual(anotherList.Select(e => e.Id).OrderBy(id => id)); H…
Short answer: var distinctByDeptAndSalary = employees .Select(g => g.First()); var distinctByDeptAndSalary = employees .Select(g => g.First()); var distinctByDeptAndSalary = employees .Select(g => g.First()); va…
Short answer: How to get distinct by multiple properties? Explain a bit more var distinctByDeptAndSalary = employees .GroupBy(e => new { e.Department, e.Salary }) .Select(g => g.First()); How to get distinct by mul…
Short answer: .OrderBy(e => e.Id) .Skip((pageNumber - 1) * pageSize) .Take(pageSize) .ToList(); Console.WriteLine($"Total Employees: {totalCount}"); foreach(var emp in pageData) Console.WriteLine($"{emp…
Short answer: How to implement pagination with total count using LINQ? Explain a bit more int pageNumber = 1; Follow : int pageSize = 3; var totalCount = employees.Count(); var pageData = employees .OrderBy(e => e.Id)…
Short answer: var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; var list1 = ne…
Short answer: How to check if two sequences have the same elements regardless of order and duplicates? var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; bool areEqual = !list1.Except(list2).Any() &&…
Short answer: var dict = employees .ToDictionary(g => g.Key, g => g.ToList()); var dict = employees .ToDictionary(g => g.Key, g => g.ToList()); var dict = employees .ToDictionary(g => g.Key, g => g.ToLi…
Short answer: How to create a dictionary from a list with duplicate keys? var dict = employees .GroupBy(e => e.Department) .ToDictionary(g => g.Key, g => g.ToList()); Follow : foreach (var kvp in dict) Console.W…
Short answer: foreach (var name in union) Console.WriteLine(name); Explanation: Union returns distinct elements from both collections. var list1 = new[] { "Alice", "Bob", "Charlie" }; var li…
Short answer: How to perform union of two collections without duplicates? var list1 = new[] { "Alice", "Bob", "Charlie" }; var list2 = new[] { "Bob", "David", "Eva&q…
Short answer: var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2); var in…
Short answer: How to perform intersection of two collections? Explain a bit more var intersect = list1.Intersect(list2); foreach (var name in intersect) Console.WriteLine(name); // Output: Bob How to perform intersection…
Short answer: var except = list1.Except(list2); var except = list1.Except(list2); var except = list1.Except(list2); var except = list1.Except(list2); var except = list1.Except(list2); var except = list1.Except(list2); va…
Short answer: How to find elements present in the first but not in the second list? var except = list1.Except(list2); foreach (var name in except) Follow : Console.WriteLine(name); // Output: Alice, Charlie How to find e…
Short answer: ; foreach(var emp in midRange) Console.WriteLine($"{emp.Name} - {emp.Salary}"); var midRange = employees.Where(e => e.Salary >= 65000 && e.Salary <=. Example code 85000); foreach(…
Short answer: How to find employees with salary between a range? var midRange = employees.Where(e => e.Salary >= 65000 &amp;&amp; e.Salary <= 85000); foreach(var emp in midRange) Console.WriteLine($"…
Short answer: var groupOrder = employees .OrderByDescending(g => g.Count()); var groupOrder = employees .OrderByDescending(g => g.Count()); var groupOrder = employees .OrderByDescending(g => g.Count()); var grou…
Short answer: How to group and order groups by count descending? var groupOrder = employees .GroupBy(e => e.Department) .OrderByDescending(g => g.Count()); foreach (var group in groupOrder) Console.WriteLine($"…
LINQ LINQ Tutorial · LINQ
Short answer: How to group join with multiple collections?
var groupJoin = from d in departments join e in employees on d.Name equals e.Department into empGroup select new { Department = d.Name, Employees = empGroup }; foreach (var group in groupJoin) Console.WriteLine($"{group.Department}:"); foreach (var emp in group.Employees) Console.WriteLine($" - {emp.Name}"); Follow : Explanation: Groups employees under their respective departments.
A sales report joins orders and customers, then GroupBy(c => c.City) to show revenue per city.
LINQ LINQ Tutorial · LINQ
Short answer: int pageNumber = 2; int pageSize = 2; var page = employees int pageNumber = 2; int pageSize = 2; var page = employees int pageNumber = 2; int pageSize = 2; var page = employees int pageNumber = 2; int pageSize = 2; var page = employees int pageNumber = 2; int pageSize = 2; var page = employees int pageNumber = 2; int pageSize = 2; var page = employees int pageNumber = 2; int pageSize = 2; var page = employees int…
pageNumber = 2; int pageSize = 2; var page = employees
int pageNumber = 2; int pageSize = 2; var page = employees int pageNumber = 2; int pageSize = 2; var page = employees int pageNumber = 2; int pageSize = 2; var page = employees int pageNumber = 2; int pageSize = 2; var page = employees int pageNumber = 2; int pageSize = 2; var page = employees int pageNumber = 2; int pageSize = 2; var page = employees int pageNumber = 2; int pageSize = 2; var page = employees int pageNumber = 2; int pageSize = 2; var page = employees
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: How to use LINQ for paging data? int pageNumber = 2; int pageSize = 2; var page = employees .OrderBy(e => e.Id) .Skip((pageNumber - 1) * pageSize) .Take(pageSize); Explanation: Retrieve specific pages from data sets (useful for UI pagination). How to use LINQ for paging data? int pageNumber = 2; int pageSize = 2; var page = employees .OrderBy(e => e.Id)…… Skip((pageNumber - 1) * pageSize) .Take(pageSize);…
Explanation: Retrieve specific pages from data sets (useful for UI pagination).
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxSalaryPerDept = employees
var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxSalaryPerDept = employees var maxSalaryPerDept = employees
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: How to find max salary per department? var maxSalaryPerDept = employees .GroupBy(e => e.Department) .Select(g => new { Department = g.Key, MaxSalary = g.Max(e => e.Salary) }); How to find max salary per department? var maxSalaryPerDept = employees .GroupBy(e => e.Department) .Select(g => new { Department = g.Key, MaxSalary = g.Max(e => e.Salary) }); How to… find max salary per department? var maxSalaryPerDept =…
employees .GroupBy(e => e.Department) .Select(g => new { Department = g.Key, MaxSalary = g.Max(e => e.Salary) }); How to find max salary per department? var maxSalaryPerDept = employees .GroupBy(e => e.Department) .Select(g => new { Department = g.Key, MaxSalary = g.Max(e => e.Salary) });
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: .SequenceEqual(anotherList.Select(e => e.Id).OrderBy(id => id)); .SequenceEqual(anotherList.Select(e => e.Id).OrderBy(id => id)); .SequenceEqual(anotherList.Select(e => e.Id).OrderBy(id => id)); .SequenceEqual(anotherList.Select(e => e.Id).OrderBy(id => id));
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: How to check sequence equality ignoring order?
bool areEqual = employees.Select(e => e.Id).OrderBy(id => id) .SequenceEqual(anotherList.Select(e => e.Id).OrderBy(id => id)); How to check sequence equality ignoring order? bool areEqual = employees.Select(e => e.Id).OrderBy(id => id) .SequenceEqual(anotherList.Select(e => e.Id).OrderBy(id => id)); How to check sequence equality ignoring order? bool areEqual = employees.Select(e => e.Id).OrderBy(id => id) .SequenceEqual(anotherList.Select(e => e.Id).OrderBy(id => id)); How to check sequence equality ignoring order? bool areEqual = employees.Select(e => e.Id).OrderBy(id => id) .SequenceEqual(anotherList.Select(e => e.Id).OrderBy(id => id));
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: var distinctByDeptAndSalary = employees .Select(g => g.First()); var distinctByDeptAndSalary = employees .Select(g => g.First()); var distinctByDeptAndSalary = employees .Select(g => g.First()); var distinctByDeptAndSalary = employees .Select(g => g.First()); var distinctByDeptAndSalary = employees .Select(g => g.First()); var distinctByDeptAndSalary = employees .Select(g => g.First()); var distinctByDeptAndSalary =…
employees .Select(g => g.First()); var distinctByDeptAndSalary = employees .Select(g => g.First());
var distinctByDeptAndSalary = employees .Select(g => g.First()); var distinctByDeptAndSalary = employees .Select(g => g.First()); var distinctByDeptAndSalary = employees .Select(g => g.First()); var distinctByDeptAndSalary = employees .Select(g => g.First()); var distinctByDeptAndSalary = employees .Select(g => g.First()); var distinctByDeptAndSalary = employees .Select(g => g.First()); var distinctByDeptAndSalary = employees .Select(g => g.First()); var distinctByDeptAndSalary = employees .Select(g => g.First());
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: How to get distinct by multiple properties?
var distinctByDeptAndSalary = employees .GroupBy(e => new { e.Department, e.Salary }) .Select(g => g.First()); How to get distinct by multiple properties? var distinctByDeptAndSalary = employees .GroupBy(e => new { e.Department, e.Salary }) .Select(g => g.First()); How to get distinct by multiple properties? var distinctByDeptAndSalary = employees .GroupBy(e => new { e.Department, e.Salary }) .Select(g => g.First()); How to get distinct by multiple properties? var distinctByDeptAndSalary = employees .GroupBy(e => new { e.Department, e.Salary }) .Select(g => g.First());
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: .OrderBy(e => e.Id) .Skip((pageNumber - 1) * pageSize) .Take(pageSize) .ToList(); Console.WriteLine($"Total Employees: {totalCount}"); foreach(var emp in pageData) Console.WriteLine($"{emp.Name} - {emp.Department}"); Explanation: You get total count separately and then take the required page using Skip and Take. int pageNumber = 1;
int pageSize = 3;
var totalCount = employees.Count();
var pageData = employees
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: How to implement pagination with total count using LINQ?
int pageNumber = 1; Follow : int pageSize = 3; var totalCount = employees.Count(); var pageData = employees .OrderBy(e => e.Id) .Skip((pageNumber - 1) * pageSize) .Take(pageSize) .ToList(); Console.WriteLine($"Total Employees: {totalCount}"); foreach(var emp in pageData) Console.WriteLine($"{emp.Name} - {emp.Department}"); Explanation: You get total count separately and then take the required page using Skip and Take.
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; var list1 = new[] {1, 2, 3, 4}; var…
list2 = new[] {4, 3, 2, 1}; var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1};
var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1};
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: How to check if two sequences have the same elements regardless of order and duplicates? var list1 = new[] {1, 2, 3, 4}; var list2 = new[] {4, 3, 2, 1}; bool areEqual = !list1.Except(list2).Any() && !list2.Except(list1).Any(); Console.WriteLine(areEqual); // Output: True Explanation: This checks if both lists contain the same elements, ignoring order and duplicates.
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: var dict = employees .ToDictionary(g => g.Key, g => g.ToList()); var dict = employees .ToDictionary(g => g.Key, g => g.ToList()); var dict = employees .ToDictionary(g => g.Key, g => g.ToList()); var dict = employees .ToDictionary(g => g.Key, g => g.ToList()); var dict = employees .ToDictionary(g => g.Key, g => g.ToList()); var dict = employees .ToDictionary(g => g.Key, g => g.ToList()); var dict = employees…
ToDictionary(g => g.Key, g => g.ToList()); var dict = employees .ToDictionary(g => g.Key, g => g.ToList());
var dict = employees .ToDictionary(g => g.Key, g => g.ToList()); var dict = employees .ToDictionary(g => g.Key, g => g.ToList()); var dict = employees .ToDictionary(g => g.Key, g => g.ToList()); var dict = employees .ToDictionary(g => g.Key, g => g.ToList()); var dict = employees .ToDictionary(g => g.Key, g => g.ToList()); var dict = employees .ToDictionary(g => g.Key, g => g.ToList()); var dict = employees .ToDictionary(g => g.Key, g => g.ToList()); var dict = employees .ToDictionary(g => g.Key, g => g.ToList());
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: How to create a dictionary from a list with duplicate keys? var dict = employees .GroupBy(e => e.Department) .ToDictionary(g => g.Key, g => g.ToList()); Follow : foreach (var kvp in dict) Console.WriteLine($"{kvp.Key} Department:"); foreach (var emp in kvp.Value) Console.WriteLine($" - {emp.Name}"); Explanation: Group employees by department and convert groups to dictionary entries.
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: foreach (var name in union) Console.WriteLine(name); Explanation: Union returns distinct elements from both collections. var list1 = new[] { "Alice", "Bob", "Charlie" }; var list2 = new[] { "Bob", "David", "Eva" }; var union = list1.Union(list2);
foreach (var name in union) Console.WriteLine(name); Explanation: Union returns distinct elements from both collections. var list1 = new[] { "Alice", "Bob", "Charlie" };
var list2 = new[] { "Bob", "David", "Eva" };
var union = list1.Union(list2);
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: How to perform union of two collections without duplicates? var list1 = new[] { "Alice", "Bob", "Charlie" }; var list2 = new[] { "Bob", "David", "Eva" }; var union = list1.Union(list2); foreach (var name in union) Console.WriteLine(name); Explanation: Union returns distinct elements from both collections.
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2);
var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2); var intersect = list1.Intersect(list2);
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: How to perform intersection of two collections?
var intersect = list1.Intersect(list2); foreach (var name in intersect) Console.WriteLine(name); // Output: Bob How to perform intersection of two collections? var intersect = list1.Intersect(list2); foreach (var name in intersect) Console.WriteLine(name); // Output: Bob How to perform intersection of two collections? var intersect = list1.Intersect(list2); foreach (var name in intersect) Console.WriteLine(name); // Output: Bob How to perform intersection of two collections? var intersect = list1.Intersect(list2); foreach (var name in intersect) Console.WriteLine(name); // Output: Bob
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: var except = list1.Except(list2); var except = list1.Except(list2); var except = list1.Except(list2); var except = list1.Except(list2); var except = list1.Except(list2); var except = list1.Except(list2); var except = list1.Except(list2); var except = list1.Except(list2);
var except = list1.Except(list2); var except = list1.Except(list2); var except = list1.Except(list2); var except = list1.Except(list2); var except = list1.Except(list2); var except = list1.Except(list2); var except = list1.Except(list2); var except = list1.Except(list2);
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: How to find elements present in the first but not in the second list? var except = list1.Except(list2); foreach (var name in except) Follow : Console.WriteLine(name); // Output: Alice, Charlie How to find elements present in the first but not in the second list?
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: ; foreach(var emp in midRange) Console.WriteLine($"{emp.Name} - {emp.Salary}"); var midRange = employees.Where(e => e.Salary >= 65000 && e.Salary <=.
85000); foreach(var emp in midRange) Console.WriteLine($"{emp.Name} - {emp.Salary}"); var midRange = employees.Where(e => e.Salary >= 65000 && e.Salary <=
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: How to find employees with salary between a range? var midRange = employees.Where(e => e.Salary >= 65000 && e.Salary <= 85000); foreach(var emp in midRange) Console.WriteLine($"{emp.Name} - {emp.Salary}"); How to find employees with salary between a range?
ShopNest uses LINQ to query orders: filter by date, project to a summary DTO, and order by total—readable C# that becomes SQL under EF Core.
LINQ LINQ Tutorial · LINQ
Short answer: var groupOrder = employees .OrderByDescending(g => g.Count()); var groupOrder = employees .OrderByDescending(g => g.Count()); var groupOrder = employees .OrderByDescending(g => g.Count()); var groupOrder = employees .OrderByDescending(g => g.Count()); var groupOrder = employees .OrderByDescending(g => g.Count()); var groupOrder = employees .OrderByDescending(g => g.Count()); var groupOrder = employees…
OrderByDescending(g => g.Count()); var groupOrder = employees .OrderByDescending(g => g.Count());
var groupOrder = employees .OrderByDescending(g => g.Count()); var groupOrder = employees .OrderByDescending(g => g.Count()); var groupOrder = employees .OrderByDescending(g => g.Count()); var groupOrder = employees .OrderByDescending(g => g.Count()); var groupOrder = employees .OrderByDescending(g => g.Count()); var groupOrder = employees .OrderByDescending(g => g.Count()); var groupOrder = employees .OrderByDescending(g => g.Count()); var groupOrder = employees .OrderByDescending(g => g.Count());
A sales report joins orders and customers, then GroupBy(c => c.City) to show revenue per city.
LINQ LINQ Tutorial · LINQ
Short answer: How to group and order groups by count descending? var groupOrder = employees .GroupBy(e => e.Department) .OrderByDescending(g => g.Count()); foreach (var group in groupOrder) Console.WriteLine($"{group.Key} has {group.Count()} employees"); How to group and order groups by count descending?
A sales report joins orders and customers, then GroupBy(c => c.City) to show revenue per city.