Master technical and career interviews with structured answers—short definition, real examples, pitfalls, and how to answer in 60–90 seconds.
Short answer: var reversed = employees.Reverse(); var reversed = employees.Reverse(); var reversed = employees.Reverse(); var reversed = employees.Reverse(); var reversed = employees.Reverse(); var reversed = employees.R…
Short answer: string result = string.Join(", ", employees.Select(e => e.Name)); string result = string.Join(", ", employees.Select(e => e.Name)); string result = string.Join(", ", empl…
Short answer: var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault(); var fi…
Short answer: var result = employees.First(e => e.Salary > 999999); var result = employees.First(e => e.Salary > 999999); var result = employees.First(e => e.Salary > 999999); var result = employees.Fir…
Short answer: How to handle exceptions in LINQ? Use try-catch around enumeration, not the query: try { var result = employees.First(e => e.Salary > 999999); } catch (Exception ex) { Console.WriteLine("No match…
Short answer: What's the difference between Select() and SelectMany()? Select() returns collection of collections. SelectMany() flattens them. Real-world example (ShopNest) ShopNest maps entities to DTOs with .Select(o =…
Short answer: var result = employees .Where(e => e.Department == "IT"); var result = employees .Where(e => e.Department == "IT"); var result = employees .Where(e => e.Department == "IT&q…
Short answer: Chaining multiple Where() calls var result = employees .Where(e => e.Salary > 70000) .Where(e => e.Department == "IT"); Chaining multiple Where() calls var result = employees .Where(e =&g…
Short answer: Find longest employee name var longest = employees .OrderByDescending(e => e.Name.Length) .FirstOrDefault(); Find longest employee name var longest = employees .OrderByDescending(e => e.Name.Length) .…
Short answer: Case-insensitive filtering var hr = employees .Where(e => e.Department.Equals("hr", StringComparison.OrdinalIgnoreCase)); Case-insensitive filtering var hr = employees .Where(e => e.Departme…
Short answer: Select employee with second-highest salary var secondHighest = employees .OrderByDescending(e => e.Salary) .Skip(1) .FirstOrDefault(); ✅ Skips the top salary and selects the next one. Explain a bit more…
Short answer: Find employee with longest name var longestName = employees .OrderByDescending(e => e.Name.Length) .FirstOrDefault(); Find employee with longest name var longestName = employees .OrderByDescending(e =>…
Short answer: var salaryGroups = employees .Select(g => new { Range = g.Key, Count = g.Count() }); Example code var salaryGroups = employees .Select(g => new { Range = g.Key, Count = g.Count() }); Real-world exampl…
Short answer: Group employees by salary range (Low/High) var salaryGroups = employees .GroupBy(e => e.Salary > 75000 ? Explain a bit more "High" : "Low") .Select(g => new { Range = g.Key, Cou…
Short answer: Get last employee alphabetically by name var lastName = employees .OrderBy(e => e.Name) .LastOrDefault(); Get last employee alphabetically by name var lastName = employees .OrderBy(e => e.Name) .LastO…
Short answer: var avg = employees.Average(e => e.Salary); var avg = employees.Average(e => e.Salary); var avg = employees.Average(e => e.Salary); var avg = employees.Average(e => e.Salary); var avg = employee…
Short answer: Count distinct departments var deptCount = employees .Select(e => e.Department) .Distinct() .Count(); Count distinct departments var deptCount = employees .Select(e => e.Department) .Distinct() .Count…
Short answer: Find employee with lowest salary var lowest = employees .OrderBy(e => e.Salary) .FirstOrDefault(); Find employee with lowest salary var lowest = employees .OrderBy(e => e.Salary) .FirstOrDefault(); Fi…
Short answer: var items = new List<string> { "apple", "Apple", "banana", "apple" var distinct = items Example code var items = new List<string> { "apple", &qu…
Short answer: Remove duplicates from a list of strings var items = new List<string> { "apple", "Apple", "banana", "apple" var distinct = items .Distinct(StringComparer.Ordina…
Short answer: var groupedByFirstLetter = employees .Select(g => new { Letter = g.Key, Employees = g.ToList() }); Example code var groupedByFirstLetter = employees .Select(g => new { Letter = g.Key, Employees = g.To…
Short answer: var result = string.Join(", ", employees.Select(e => e.Name)); var result = string.Join(", ", employees.Select(e => e.Name)); var result = string.Join(", ", employees.Sel…
Short answer: var filtered = employees StringComparison.OrdinalIgnoreCase) >= 0); var filtered = employees StringComparison.OrdinalIgnoreCase) >= 0); var filtered = employees StringComparison.OrdinalIgnoreCase) >…
Short answer: Filter employees whose name contains 'a' (case-insensitive) var filtered = employees .Where(e => e.Name.IndexOf('a', StringComparison.OrdinalIgnoreCase) >= 0); Filter employees whose name contains 'a'…
Short answer: var result = from e in employees select new { e.Name, DeptLocation = d.Location }; Example code var result = from e in employees select new { e.Name, DeptLocation = d.Location }; Real-world example (ShopNes…
LINQ LINQ Tutorial · LINQ
Short answer: var reversed = employees.Reverse(); var reversed = employees.Reverse(); var reversed = employees.Reverse(); var reversed = employees.Reverse(); var reversed = employees.Reverse(); var reversed = employees.Reverse(); var reversed = employees.Reverse(); var reversed = employees.Reverse();
var reversed = employees.Reverse(); var reversed = employees.Reverse(); var reversed = employees.Reverse(); var reversed = employees.Reverse(); var reversed = employees.Reverse(); var reversed = employees.Reverse(); var reversed = employees.Reverse(); var reversed = employees.Reverse();
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: string result = string.Join(", ", employees.Select(e => e.Name)); string result = string.Join(", ", employees.Select(e => e.Name)); string result = string.Join(", ", employees.Select(e => e.Name)); string result = string.Join(", ", employees.Select(e => e.Name)); string result = string.Join(", ", employees.Select(e => e.Name)); string result = string.Join(", ", employees.Select(e => e.Name)); string result =…
string.Join(", ", employees.Select(e => e.Name)); string result = string.Join(", ", employees.Select(e => e.Name));
string result = string.Join(", ", employees.Select(e => e.Name)); string result = string.Join(", ", employees.Select(e => e.Name)); string result = string.Join(", ", employees.Select(e => e.Name)); string result = string.Join(", ", employees.Select(e => e.Name)); string result = string.Join(", ", employees.Select(e => e.Name)); string result = string.Join(", ", employees.Select(e => e.Name)); string result = string.Join(", ", employees.Select(e => e.Name)); string result = string.Join(", ", employees.Select(e => e.Name));
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 first = employees.FirstOrDefault(); var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault();
var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault(); var first = employees.FirstOrDefault();
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 result = employees.First(e => e.Salary > 999999); var result = employees.First(e => e.Salary > 999999); var result = employees.First(e => e.Salary > 999999); var result = employees.First(e => e.Salary > 999999); var result = employees.First(e => e.Salary > 999999); var result = employees.First(e => e.Salary > 999999); var result = employees.First(e => e.Salary > 999999); var result = employees.First(e =>…
var result = employees.First(e => e.Salary > 999999); var result = employees.First(e => e.Salary > 999999); var result = employees.First(e => e.Salary > 999999); var result = employees.First(e => e.Salary > 999999); var result = employees.First(e => e.Salary > 999999); var result = employees.First(e => e.Salary > 999999); var result = employees.First(e => e.Salary > 999999); var result = employees.First(e => e.Salary > 999999);
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 handle exceptions in LINQ? Use try-catch around enumeration, not the query: try { var result = employees.First(e => e.Salary > 999999); } catch (Exception ex) { Console.WriteLine("No match found."); How to handle exceptions in LINQ? How to handle exceptions in LINQ? Use try-catch around enumeration, not the query: try { var result =… employees.First(e… => e.Salary > 999999); } catch (Exception ex) {…
Console.WriteLine("No match found."); How to handle exceptions in LINQ?
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: What's the difference between Select() and SelectMany()? Select() returns collection of collections. SelectMany() flattens them.
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 result = employees .Where(e => e.Department == "IT"); var result = employees .Where(e => e.Department == "IT"); var result = employees .Where(e => e.Department == "IT"); var result = employees .Where(e => e.Department == "IT");
ShopNest filters active products with products.Where(p => p.IsActive && p.Stock > 0) before showing the catalog.
LINQ LINQ Tutorial · LINQ
Short answer: Chaining multiple Where() calls var result = employees .Where(e => e.Salary > 70000) .Where(e => e.Department == "IT"); Chaining multiple Where() calls var result = employees .Where(e => e.Salary > 70000) .Where(e => e.Department == "IT"); Chaining multiple Where() calls var result = employees .Where(e => e.Salary > 70000) .Where(e => e.Department == "IT");… Chaining multiple Where() calls var result = employees…
Where(e => e.Salary > 70000) .Where(e => e.Department == "IT");
ShopNest filters active products with products.Where(p => p.IsActive && p.Stock > 0) before showing the catalog.
LINQ LINQ Tutorial · LINQ
Short answer: Find longest employee name var longest = employees .OrderByDescending(e => e.Name.Length) .FirstOrDefault(); Find longest employee name var longest = employees .OrderByDescending(e => e.Name.Length) .FirstOrDefault(); Find longest employee name var longest = employees .OrderByDescending(e => e.Name.Length) .FirstOrDefault(); Find longest employee name var… longest = employees .OrderByDescending(e => e.Name.Length)…
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: Case-insensitive filtering var hr = employees .Where(e => e.Department.Equals("hr", StringComparison.OrdinalIgnoreCase)); Case-insensitive filtering var hr = employees .Where(e => e.Department.Equals("hr", StringComparison.OrdinalIgnoreCase)); Case-insensitive filtering var hr = employees .Where(e => e.Department.Equals("hr",… StringComparison.OrdinalIgnoreCase)); Case-insensitive filtering var hr = employees…
Where(e => e.Department.Equals("hr", StringComparison.OrdinalIgnoreCase));
ShopNest filters active products with products.Where(p => p.IsActive && p.Stock > 0) before showing the catalog.
LINQ LINQ Tutorial · LINQ
Short answer: Select employee with second-highest salary var secondHighest = employees .OrderByDescending(e => e.Salary) .Skip(1) .FirstOrDefault(); ✅ Skips the top salary and selects the next one.
Select employee with second-highest salary var secondHighest = employees .OrderByDescending(e => e.Salary) .Skip(1) .FirstOrDefault(); ✅ Skips the top salary and selects the next one. Select employee with second-highest salary var secondHighest = employees .OrderByDescending(e => e.Salary) .Skip(1) .FirstOrDefault(); ✅ Skips the top salary and selects the next one.
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: Find employee with longest name var longestName = employees .OrderByDescending(e => e.Name.Length) .FirstOrDefault(); Find employee with longest name var longestName = employees .OrderByDescending(e => e.Name.Length) .FirstOrDefault(); Find employee with longest name var longestName = employees .OrderByDescending(e => e.Name.Length) .FirstOrDefault(); Find… employee with longest name var longestName = employees…
OrderByDescending(e => e.Name.Length) .FirstOrDefault();
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 salaryGroups = employees .Select(g => new { Range = g.Key, Count = g.Count() });
var salaryGroups = employees
.Select(g => new { Range = g.Key, Count = 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: Group employees by salary range (Low/High) var salaryGroups = employees .GroupBy(e => e.Salary > 75000 ?
"High" : "Low") .Select(g => new { Range = g.Key, Count = g.Count() }); Follow : Group employees by salary range (Low/High) var salaryGroups = employees .GroupBy(e => e.Salary > 75000 ? "High" : "Low") .Select(g => new { Range = g.Key, Count = g.Count() }); Follow : Group employees by salary range (Low/High) var salaryGroups = employees .GroupBy(e => e.Salary > 75000 ? "High" : "Low") .Select(g => new { Range = g.Key, Count = g.Count() }); Follow : Group employees by salary range (Low/High) var salaryGroups = employees .GroupBy(e => e.Salary > 75000 ? "High" : "Low") .Select(g => new { Range = g.Key, Count = g.Count() }); Follow :
A sales report joins orders and customers, then GroupBy(c => c.City) to show revenue per city.
LINQ LINQ Tutorial · LINQ
Short answer: Get last employee alphabetically by name var lastName = employees .OrderBy(e => e.Name) .LastOrDefault(); Get last employee alphabetically by name var lastName = employees .OrderBy(e => e.Name) .LastOrDefault(); Get last employee alphabetically by name var lastName = employees .OrderBy(e => e.Name) .LastOrDefault(); Get last employee alphabetically by name… var lastName = employees .OrderBy(e => e.Name)…
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 avg = employees.Average(e => e.Salary); var avg = employees.Average(e => e.Salary); var avg = employees.Average(e => e.Salary); var avg = employees.Average(e => e.Salary); var avg = employees.Average(e => e.Salary); var avg = employees.Average(e => e.Salary); var avg = employees.Average(e => e.Salary); var avg = employees.Average(e => e.Salary);
var avg = employees.Average(e => e.Salary); var avg = employees.Average(e => e.Salary); var avg = employees.Average(e => e.Salary); var avg = employees.Average(e => e.Salary); var avg = employees.Average(e => e.Salary); var avg = employees.Average(e => e.Salary); var avg = employees.Average(e => e.Salary); var avg = employees.Average(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: Count distinct departments var deptCount = employees .Select(e => e.Department) .Distinct() .Count(); Count distinct departments var deptCount = employees .Select(e => e.Department) .Distinct() .Count(); Count distinct departments var deptCount = employees .Select(e => e.Department) .Distinct() .Count(); Count distinct departments var deptCount = employees . Select(e => e.Department) .Distinct() .Count();
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: Find employee with lowest salary var lowest = employees .OrderBy(e => e.Salary) .FirstOrDefault(); Find employee with lowest salary var lowest = employees .OrderBy(e => e.Salary) .FirstOrDefault(); Find employee with lowest salary var lowest = employees .OrderBy(e => e.Salary) .FirstOrDefault(); Find employee with lowest salary var lowest = employees… OrderBy(e => e.Salary) .FirstOrDefault();
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 items = new List<string> { "apple", "Apple", "banana", "apple" var distinct = items
var items = new List<string> { "apple", "Apple", "banana", "apple"
var distinct = items
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: Remove duplicates from a list of strings var items = new List<string> { "apple", "Apple", "banana", "apple" var distinct = items .Distinct(StringComparer.OrdinalIgnoreCase); Remove duplicates from a list of strings var items = new List<string> { "apple", "Apple", "banana", "apple" var distinct = items… Distinct(StringComparer.OrdinalIgnoreCase); Remove… duplicates from a list of strings var items = new List<string>…
{ "apple", "Apple", "banana", "apple" var distinct = items .Distinct(StringComparer.OrdinalIgnoreCase); Remove duplicates from a list of strings var items = new List<string> { "apple", "Apple", "banana", "apple" var distinct = items… Distinct(StringComparer.OrdinalIgnoreCase);
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 groupedByFirstLetter = employees .Select(g => new { Letter = g.Key, Employees = g.ToList() });
var groupedByFirstLetter = employees
.Select(g => new { Letter = g.Key, Employees = g.ToList() });
A sales report joins orders and customers, then GroupBy(c => c.City) to show revenue per city.
LINQ LINQ Tutorial · LINQ
Short answer: var result = string.Join(", ", employees.Select(e => e.Name)); var result = string.Join(", ", employees.Select(e => e.Name)); var result = string.Join(", ", employees.Select(e => e.Name)); var result = string.Join(", ", employees.Select(e => e.Name)); var result = string.Join(", ", employees.Select(e => e.Name)); var result = string.Join(", ", employees.Select(e => e.Name)); var result = string.Join(", ",…
employees.Select(e => e.Name)); var result = string.Join(", ", employees.Select(e => e.Name));
var result = string.Join(", ", employees.Select(e => e.Name)); var result = string.Join(", ", employees.Select(e => e.Name)); var result = string.Join(", ", employees.Select(e => e.Name)); var result = string.Join(", ", employees.Select(e => e.Name)); var result = string.Join(", ", employees.Select(e => e.Name)); var result = string.Join(", ", employees.Select(e => e.Name)); var result = string.Join(", ", employees.Select(e => e.Name)); var result = string.Join(", ", employees.Select(e => e.Name));
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 filtered = employees StringComparison.OrdinalIgnoreCase) >= 0); var filtered = employees StringComparison.OrdinalIgnoreCase) >= 0); var filtered = employees StringComparison.OrdinalIgnoreCase) >= 0); var filtered = employees StringComparison.OrdinalIgnoreCase) >= 0); var filtered = employees StringComparison.OrdinalIgnoreCase) >= 0); var filtered = employees StringComparison.OrdinalIgnoreCase) >= 0); var…
filtered = employees StringComparison.OrdinalIgnoreCase) >= 0); var filtered = employees StringComparison.OrdinalIgnoreCase) >= 0);
var filtered = employees StringComparison.OrdinalIgnoreCase) >= 0); var filtered = employees StringComparison.OrdinalIgnoreCase) >= 0); var filtered = employees StringComparison.OrdinalIgnoreCase) >= 0); var filtered = employees StringComparison.OrdinalIgnoreCase) >= 0); var filtered = employees StringComparison.OrdinalIgnoreCase) >= 0); var filtered = employees StringComparison.OrdinalIgnoreCase) >= 0); var filtered = employees StringComparison.OrdinalIgnoreCase) >= 0); var filtered = employees StringComparison.OrdinalIgnoreCase) >= 0);
ShopNest filters active products with products.Where(p => p.IsActive && p.Stock > 0) before showing the catalog.
LINQ LINQ Tutorial · LINQ
Short answer: Filter employees whose name contains 'a' (case-insensitive) var filtered = employees .Where(e => e.Name.IndexOf('a', StringComparison.OrdinalIgnoreCase) >= 0); Filter employees whose name contains 'a' (case-insensitive) var filtered = employees .Where(e => e.Name.IndexOf('a', StringComparison.OrdinalIgnoreCase) >= 0); Real-world… example (ShopNest)… ShopNest… filters active products with products.Where(p =>…
p.IsActive && p.Stock > 0) before showing the catalog. Filter employees whose name contains 'a' (case-insensitive) var filtered = employees .Where(e => e.Name.IndexOf('a', StringComparison.OrdinalIgnoreCase) >= 0); Filter employees whose name contains 'a' (case-insensitive) var filtered = employees .Where(e => e.Name.IndexOf('a', StringComparison.OrdinalIgnoreCase) >= 0); Real-world… example (ShopNest) ShopNest filters active products with products.Where(p => p.IsActive && p.Stock > 0) before showing the catalog.
LINQ LINQ Tutorial · LINQ
Short answer: var result = from e in employees select new { e.Name, DeptLocation = d.Location };
var result = from e in employees
select new { e.Name, DeptLocation = d.Location };
A sales report joins orders and customers, then GroupBy(c => c.City) to show revenue per city.