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 use LINQ with asynchronous streams? Explain a bit more using System.Threading.Tasks; using System.Linq; using System.Collections.Generic; Follow : async IAsyncEnumerable<int> GenerateNumbersAsy…
Short answer: JsonArray arr = JsonNode.Parse(json).AsArray(); var names = arr.Select(node => node["Name"].GetValue<string>()); Example code JsonArray arr = JsonNode.Parse(json).AsArray(); var names = a…
Short answer: How to query JSON data using LINQ? using System.Text.Json; using System.Text.Json.Nodes; string json = @"[{""Name"":""Alice"",""Age"":30},{&q…
Short answer: var distinctByDept = employees .Select(g => g.First()); var distinctByDept = employees .Select(g => g.First()); var distinctByDept = employees .Select(g => g.First()); var distinctByDept = employee…
Short answer: How to filter distinct objects by a property? var distinctByDept = employees .GroupBy(e => e.Department) .Select(g => g.First()); Explanation: Groups employees by department and selects one employee f…
Short answer: foreach (var total in runningTotals) Console.WriteLine(total); Explanation: Accumulates sums as you iterate through the sequence. var salaries = employees.Select(e => e.Salary).ToList(); Example code dou…
Short answer: How to calculate running totals using LINQ? var salaries = employees.Select(e => e.Salary).ToList(); double runningTotal = 0; var runningTotals = salaries.Select(s => runningTotal += s); foreach (var…
Short answer: if (!string.IsNullOrEmpty(searchName)) { } Explanation: Build LINQ queries dynamically based on conditions. string searchName = "Alice"; var query = employees.AsQueryable(); query = query.Where(e…
Short answer: How to perform conditional LINQ queries? string searchName = "Alice"; var query = employees.AsQueryable(); if (!string.IsNullOrEmpty(searchName)) query = query.Where(e => e.Name.Contains(search…
Short answer: { new { Department = "IT", Employees = new [] {"Bob", "Charlie"} }, new { Department = "HR", Employees = new [] {"Alice", "Eva"} } }; foreach (var…
Short answer: How to flatten hierarchical data with SelectMany? Explain a bit more var departmentsWithEmployees = new[] new { Department = "IT", Employees = new [] {"Bob", "Charlie"} new { D…
Short answer: var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGrou…
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() &&…
LINQ LINQ Tutorial · LINQ
Short answer: How to use LINQ with asynchronous streams?
using System.Threading.Tasks; using System.Linq; using System.Collections.Generic; Follow : async IAsyncEnumerable<int> GenerateNumbersAsync() for (int i = 1; i <= 5; i++) await Task.Delay(100); yield return i; async Task ExampleAsync() await foreach (var number in GenerateNumbersAsync().Where(n => n % 2 == 0)) Console.WriteLine(number); Explanation: Combine LINQ with asynchronous streams to filter async data efficiently.
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: JsonArray arr = JsonNode.Parse(json).AsArray(); var names = arr.Select(node => node["Name"].GetValue<string>());
JsonArray arr = JsonNode.Parse(json).AsArray();
var names = arr.Select(node => node["Name"].GetValue<string>());
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 query JSON data using LINQ? using System.Text.Json; using System.Text.Json.Nodes; string json = @"[{""Name"":""Alice"",""Age"":30},{""Name"":""Bob"",""Age"":25}]"; JsonArray arr = JsonNode.Parse(json).AsArray(); var names = arr.Select(node => node["Name"].GetValue<string>()); foreach (var name in names) Console.WriteLine(name); Follow :… Explanation:…… Use System.Text.Json to parse JSON, then LINQ to query…
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 distinctByDept = employees .Select(g => g.First()); var distinctByDept = employees .Select(g => g.First()); var distinctByDept = employees .Select(g => g.First()); var distinctByDept = employees .Select(g => g.First()); var distinctByDept = employees .Select(g => g.First()); var distinctByDept = employees .Select(g => g.First()); var distinctByDept = employees .Select(g => g.First()); var distinctByDept =…
var distinctByDept = employees .Select(g => g.First()); var distinctByDept = employees .Select(g => g.First()); var distinctByDept = employees .Select(g => g.First()); var distinctByDept = employees .Select(g => g.First()); var distinctByDept = employees .Select(g => g.First()); var distinctByDept = employees .Select(g => g.First()); var distinctByDept = employees .Select(g => g.First()); var distinctByDept = employees .Select(g => g.First());
ShopNest filters active products with products.Where(p => p.IsActive && p.Stock > 0) before showing the catalog.
LINQ LINQ Tutorial · LINQ
Short answer: How to filter distinct objects by a property? var distinctByDept = employees .GroupBy(e => e.Department) .Select(g => g.First()); Explanation: Groups employees by department and selects one employee from each group to get distinct departments.
ShopNest filters active products with products.Where(p => p.IsActive && p.Stock > 0) before showing the catalog.
LINQ LINQ Tutorial · LINQ
Short answer: foreach (var total in runningTotals) Console.WriteLine(total); Explanation: Accumulates sums as you iterate through the sequence. var salaries = employees.Select(e => e.Salary).ToList();
double runningTotal = 0;
var runningTotals = salaries.Select(s => runningTotal += s);
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 calculate running totals using LINQ? var salaries = employees.Select(e => e.Salary).ToList(); double runningTotal = 0; var runningTotals = salaries.Select(s => runningTotal += s); foreach (var total in runningTotals) Console.WriteLine(total); Explanation: Accumulates sums as you iterate through the sequence.
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: if (!string.IsNullOrEmpty(searchName)) { } Explanation: Build LINQ queries dynamically based on conditions. string searchName = "Alice"; var query = employees.AsQueryable(); query = query.Where(e => e.Name.Contains(searchName)); var result = query.ToList();
if (!string.IsNullOrEmpty(searchName)) { } Explanation: Build LINQ queries dynamically based on conditions. string searchName = "Alice";
var query = employees.AsQueryable();
query = query.Where(e => e.Name.Contains(searchName));
var result = query.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 perform conditional LINQ queries? string searchName = "Alice"; var query = employees.AsQueryable(); if (!string.IsNullOrEmpty(searchName)) query = query.Where(e => e.Name.Contains(searchName)); var result = query.ToList(); Follow : Explanation: Build LINQ queries dynamically based on conditions. How to perform conditional LINQ queries? string…… searchName = "Alice"; var query = employees.AsQueryable(); if…
(!string.IsNullOrEmpty(searchName)) query = query.Where(e => e.Name.Contains(searchName)); var result = query.ToList(); Follow : Explanation: Build LINQ queries dynamically based on conditions.
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: { new { Department = "IT", Employees = new [] {"Bob", "Charlie"} }, new { Department = "HR", Employees = new [] {"Alice", "Eva"} } }; foreach (var emp in allEmployees) Console.WriteLine(emp); Explanation: SelectMany flattens nested collections into a single sequence. var departmentsWithEmployees = new[]
var allEmployees = departmentsWithEmployees
.SelectMany(d => d.Employees);
ShopNest maps entities to DTOs with .Select(o => new OrderSummaryDto { Id = o.Id, Total = o.Total }) so the API does not leak internal fields.
LINQ LINQ Tutorial · LINQ
Short answer: How to flatten hierarchical data with SelectMany?
var departmentsWithEmployees = new[] new { Department = "IT", Employees = new [] {"Bob", "Charlie"} new { Department = "HR", Employees = new [] {"Alice", "Eva"} } var allEmployees = departmentsWithEmployees .SelectMany(d => d.Employees); foreach (var emp in allEmployees) Console.WriteLine(emp); Explanation: SelectMany flattens nested collections into a single sequence.
ShopNest maps entities to DTOs with .Select(o => new OrderSummaryDto { Id = o.Id, Total = o.Total }) so the API does not leak internal fields.
LINQ LINQ Tutorial · LINQ
Short answer: var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGroup
var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGroup var groupJoin = from d in departments into empGroup
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 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.