Master technical and career interviews with structured answers—short definition, real examples, pitfalls, and how to answer in 60–90 seconds.
Short answer: var result = string.Join(", ", concatenated); var result = string.Join(", ", concatenated); var result = string.Join(", ", concatenated); var result = string.Join(", "…
Short answer: Concat(seq2); var result = string.Join(", ", concatenated); Console.WriteLine(result); // Output: Alice, Bob, Charlie, David Concat(seq2); var result = string.Join(", ", concatenated); C…
Short answer: var itEmployees = employees.Where(e => e.Department == "IT"); Filters employees whose department is "IT". Example code var itEmployees = employees.Where(e => e.Department == "…
Short answer: var names = employees.Select(e => e.Name); Projects only the Name property of each employee. Example code var names = employees.Select(e => e.Name); Projects only the Name property of each employee. R…
Short answer: var sorted = employees.OrderByDescending(e => e.Salary); Orders the list from highest salary to lowest. Example code var sorted = employees.OrderByDescending(e => e.Salary); Orders the list from highe…
Short answer: var filtered = employees .Select(e => new { e.Name, e.Salary }); Combines filtering + projection using anonymous types. Example code var filtered = employees .Select(e => new { e.Name, e.Salary }); Co…
Short answer: Combines filtering + projection using anonymous types. Real-world example (ShopNest) ShopNest maps entities to DTOs with .Select(o => new OrderSummaryDto { Id = o.Id, Total = o.Total }) so the API does n…
Short answer: int hrCount = employees.Count(e => e.Department == "HR"); Counts only employees matching the condition. Example code int hrCount = employees.Count(e => e.Department == "HR"); Count…
Short answer: double avgSalary = employees .Average(e => e.Salary); double avgSalary = employees .Average(e => e.Salary); double avgSalary = employees .Average(e => e.Salary); double avgSalary = employees .Avera…
Short answer: What is the average salary in IT? double avgSalary = employees .Where(e => e.Department == "IT") .Average(e => e.Salary); What is the average salary in IT? double avgSalary = employees .Wher…
Short answer: double max = employees.Max(e => e.Salary); double max = employees.Max(e => e.Salary); double max = employees.Max(e => e.Salary); double max = employees.Max(e => e.Salary); Real-world example (Sh…
Short answer: var grouped = employees .GroupBy(e => e.Department); Each group is an IGrouping<string, Employee> Example code var grouped = employees .GroupBy(e => e.Department); Each group is an IGrouping<…
Short answer: Each group is an IGrouping<string, Employee> Real-world example (ShopNest) A sales report joins orders and customers, then GroupBy(c => c.City) to show revenue per city. Say this in the interview D…
Short answer: For each department, show average salary var avgByDept = employees .GroupBy(e => e.Department) .Select(g => new Department = g.Key, AverageSalary = g.Average(e => e.Salary) }); For each department,…
Short answer: var joined = from e in employees join matches based on keys. Explain a bit more var joined = from e in employees join matches based on keys. var joined = from e in employees join matches based on keys. var…
Short answer: join matches based on keys. join matches based on keys. join matches based on keys. join matches based on keys. join matches based on keys. join matches based on keys. join matches based on keys. join match…
Short answer: .Location?? "Not Found" }; var leftJoin = from e in employees into deptGroup Uses DefaultIfEmpty() to simulate outer join. Example code .Location?? "Not Found" }; var leftJoin = from e i…
Short answer: Uses DefaultIfEmpty() to simulate outer join. Real-world example (ShopNest) A sales report joins orders and customers, then GroupBy(c => c.City) to show revenue per city. Say this in the interview Define…
Short answer: var highPaid = employees.FirstOrDefault(e => e.Salary > 80000); var highPaid = employees.FirstOrDefault(e => e.Salary > 80000); var highPaid = employees.FirstOrDefault(e => e.Salary > 8000…
Short answer: >1 ✅ Tip: Use Single when you're sure there will be exactly one result. var onlyHR = employees.SingleOrDefault(e => e.Id == 1); // throws if var firstHR = employees.FirstOrDefault(e => e.Id == 1);…
Short answer: Use Single vs First — what's the difference? var onlyHR = employees.SingleOrDefault(e => e.Id == 1); // throws if var firstHR = employees.FirstOrDefault(e => e.Id == 1); // safe ✅ Tip: Use Single when…
Short answer: var listA = employees.Take(3); var listB = employees.Skip(2); var common = listA.Select(e => e.Id) .Intersect(listB.Select(e => e.Id)); Example code var listA = employees.Take(3); var listB = employee…
Short answer: var onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.Id)); var onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.Id)); var onlyInA = listA.Select(e => e.Id) .Except(l…
Short answer: Skip top 2 highest salaries and take next 2 var result = employees .OrderByDescending(e => e.Salary) .Skip(2) .Take(2); Skip top 2 highest salaries and take next 2 var result = employees .OrderByDescendi…
Short answer: bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(…
LINQ LINQ Tutorial · LINQ
Short answer: var result = string.Join(", ", concatenated); var result = string.Join(", ", concatenated); var result = string.Join(", ", concatenated); var result = string.Join(", ", concatenated); var result = string.Join(", ", concatenated); var result = string.Join(", ", concatenated); var result = string.Join(", ", concatenated); var result = string.Join(", ", concatenated);
var result = string.Join(", ", concatenated); var result = string.Join(", ", concatenated); var result = string.Join(", ", concatenated); var result = string.Join(", ", concatenated); var result = string.Join(", ", concatenated); var result = string.Join(", ", concatenated); var result = string.Join(", ", concatenated); var result = string.Join(", ", concatenated);
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: Concat(seq2); var result = string.Join(", ", concatenated); Console.WriteLine(result); // Output: Alice, Bob, Charlie, David Concat(seq2); var result = string.Join(", ", concatenated); Console.WriteLine(result); // Output: Alice, Bob, Charlie, David Concat(seq2); var result = string.Join(", ", concatenated); Console.WriteLine(result); // Output: Alice, Bob,… Charlie, David Concat(seq2); var result = string.Join(",…
", concatenated); Console.WriteLine(result); // Output: Alice, Bob, Charlie, David
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 itEmployees = employees.Where(e => e.Department == "IT"); Filters employees whose department is "IT".
var itEmployees = employees.Where(e => e.Department == "IT"); Filters employees whose department is "IT".
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 names = employees.Select(e => e.Name); Projects only the Name property of each employee.
var names = employees.Select(e => e.Name); Projects only the Name property of each employee.
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 sorted = employees.OrderByDescending(e => e.Salary); Orders the list from highest salary to lowest.
var sorted = employees.OrderByDescending(e => e.Salary); Orders the list from highest salary to lowest.
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 .Select(e => new { e.Name, e.Salary }); Combines filtering + projection using anonymous types.
var filtered = employees
.Select(e => new { e.Name, e.Salary }); Combines filtering + projection using anonymous types.
ShopNest filters active products with products.Where(p => p.IsActive && p.Stock > 0) before showing the catalog.
LINQ LINQ Tutorial · LINQ
Short answer: Combines filtering + projection using anonymous types.
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: int hrCount = employees.Count(e => e.Department == "HR"); Counts only employees matching the condition.
int hrCount = employees.Count(e => e.Department == "HR"); Counts only employees matching the condition.
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: double avgSalary = employees .Average(e => e.Salary); double avgSalary = employees .Average(e => e.Salary); double avgSalary = employees .Average(e => e.Salary); double avgSalary = 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: What is the average salary in IT? double avgSalary = employees .Where(e => e.Department == "IT") .Average(e => e.Salary); What is the average salary in IT? double avgSalary = employees .Where(e => e.Department == "IT") .Average(e => e.Salary); What is the average salary in IT? double avgSalary = employees .Where(e => e.Department == "IT") .Average(e =>… e.Salary); What is the average salary in IT? double avgSalary =…
employees .Where(e => e.Department == "IT") .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: double max = employees.Max(e => e.Salary); double max = employees.Max(e => e.Salary); double max = employees.Max(e => e.Salary); double max = employees.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: var grouped = employees .GroupBy(e => e.Department); Each group is an IGrouping<string, Employee>
var grouped = employees
.GroupBy(e => e.Department); Each group is an IGrouping<string, Employee>
A sales report joins orders and customers, then GroupBy(c => c.City) to show revenue per city.
LINQ LINQ Tutorial · LINQ
Short answer: Each group is an IGrouping<string, Employee>
A sales report joins orders and customers, then GroupBy(c => c.City) to show revenue per city.
LINQ LINQ Tutorial · LINQ
Short answer: For each department, show average salary var avgByDept = employees .GroupBy(e => e.Department) .Select(g => new Department = g.Key, AverageSalary = g.Average(e => e.Salary) }); For each department, show average salary var avgByDept = employees .GroupBy(e => e.Department) .Select(g => new Department = g.Key, AverageSalary =… g.Average(e => e.Salary) }); For… each department, show average salary var avgByDept =…
employees .GroupBy(e => e.Department) .Select(g => new Department = g.Key, AverageSalary = g.Average(e => e.Salary) }); For each department, show average salary var avgByDept = employees .GroupBy(e => e.Department) .Select(g => new Department = g.Key, AverageSalary =… g.Average(e => e.Salary) }); For each department, show average salary var avgByDept = employees .GroupBy(e => e.Department) .Select(g => new Department = g.Key, AverageSalary = g.Average(e => e.Salary) }); For each department, show average salary var avgByDept = employees .GroupBy(e => e.Department) .Select(g => new Department = g.Key, AverageSalary =… g.Average(e => e.Salary) }); For each department, show average salary var avgByDept = employees .GroupBy(e => e.Department) .Select(g => new Department = g.Key, AverageSalary = g.Average(e => e.Salary) }); For each department, show average salary var avgByDept = employees…
For each department, show average salary var avgByDept = employees .GroupBy(e => e.Department) .Select(g => new Department = g.Key, AverageSalary = g.Average(e => e.Salary) }); For each department, show average salary var avgByDept = employees .GroupBy(e => e.Department) .Select(g => new Department = g.Key, AverageSalary =… g.Average(e => e.Salary) }); For… each department, show average salary var avgByDept = employees .GroupBy(e => e.Department) .Select(g => new Department = g.Key, AverageSalary = g.Average(e => e.Salary) }); For each department, show average salary var avgByDept = employees .GroupBy(e => e.Department) .Select(g => new Department = g.Key, AverageSalary =… g.Average(e => e.Salary) }); For each department, show average salary var avgByDept = employees .GroupBy(e => e.Department) .Select(g => new Department = g.Key, AverageSalary = g.Average(e => e.Salary) }); For each department, show average salary var avgByDept = employees .GroupBy(e => e.Department) .Select(g => new Department = g.Key, AverageSalary =… g.Average(e => e.Salary) }); For each department, show average salary var avgByDept = employees .GroupBy(e => e.Department) .Select(g => new Department = g.Key, AverageSalary = g.Average(e => e.Salary) }); For each department, show average salary var avgByDept = employees .GroupBy(e => e.Department) .Select(g => new Department = g.Key, AverageSalary =… g.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: var joined = from e in employees join matches based on keys.
var joined = from e in employees join matches based on keys. var joined = from e in employees join matches based on keys. var joined = from e in employees join matches based on keys. var joined = from e in employees join matches based on keys. var joined = from e in employees join matches based on keys. var joined = from e in employees join matches based on keys. var joined = from e in employees join matches based on keys.
var joined = from e in employees join matches based on keys. var joined = from e in employees join matches based on keys. var joined = from e in employees join matches based on keys. var joined = from e in employees join matches based on keys. var joined = from e in employees join matches based on keys. var joined = from e in employees join matches based on keys. var joined = from e in employees join matches based on keys. var joined = from e in employees join matches based on keys.
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: join matches based on keys. join matches based on keys. join matches based on keys. join matches based on keys. join matches based on keys. join matches based on keys. join matches based on keys. join matches based on keys.
join matches based on keys. join matches based on keys. join matches based on keys. join matches based on keys. join matches based on keys. join matches based on keys. join matches based on keys. join matches based on keys.
A sales report joins orders and customers, then GroupBy(c => c.City) to show revenue per city.
LINQ LINQ Tutorial · LINQ
Short answer: .Location?? "Not Found" }; var leftJoin = from e in employees into deptGroup Uses DefaultIfEmpty() to simulate outer join.
.Location?? "Not Found" }; var leftJoin = from e in employees
into deptGroup Uses DefaultIfEmpty() to simulate outer join.
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: Uses DefaultIfEmpty() to simulate outer join.
A sales report joins orders and customers, then GroupBy(c => c.City) to show revenue per city.
LINQ LINQ Tutorial · LINQ
Short answer: var highPaid = employees.FirstOrDefault(e => e.Salary > 80000); var highPaid = employees.FirstOrDefault(e => e.Salary > 80000); var highPaid = employees.FirstOrDefault(e => e.Salary > 80000); var highPaid = employees.FirstOrDefault(e => e.Salary > 80000); var highPaid = employees.FirstOrDefault(e => e.Salary > 80000); var highPaid = employees.FirstOrDefault(e => e.Salary > 80000); var highPaid =…
employees.FirstOrDefault(e => e.Salary > 80000); var highPaid = employees.FirstOrDefault(e => e.Salary > 80000);
var highPaid = employees.FirstOrDefault(e => e.Salary > 80000); var highPaid = employees.FirstOrDefault(e => e.Salary > 80000); var highPaid = employees.FirstOrDefault(e => e.Salary > 80000); var highPaid = employees.FirstOrDefault(e => e.Salary > 80000); var highPaid = employees.FirstOrDefault(e => e.Salary > 80000); var highPaid = employees.FirstOrDefault(e => e.Salary > 80000); var highPaid = employees.FirstOrDefault(e => e.Salary > 80000); var highPaid = employees.FirstOrDefault(e => e.Salary > 80000);
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: >1 ✅ Tip: Use Single when you're sure there will be exactly one result. var onlyHR = employees.SingleOrDefault(e => e.Id == 1); // throws if var firstHR = employees.FirstOrDefault(e => e.Id == 1); // safe
>1 ✅ Tip: Use Single when you're sure there will be exactly one result. var onlyHR = employees.SingleOrDefault(e => e.Id == 1); // throws if
var firstHR = employees.FirstOrDefault(e => e.Id == 1); // safe
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: Use Single vs First — what's the difference? var onlyHR = employees.SingleOrDefault(e => e.Id == 1); // throws if var firstHR = employees.FirstOrDefault(e => e.Id == 1); // safe ✅ Tip: Use Single when you're sure there will be exactly one result.
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 listA = employees.Take(3); var listB = employees.Skip(2); var common = listA.Select(e => e.Id) .Intersect(listB.Select(e => e.Id));
var listA = employees.Take(3);
var listB = employees.Skip(2);
var common = listA.Select(e => e.Id)
.Intersect(listB.Select(e => e.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 onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.Id)); var onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.Id)); var onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.Id)); var onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.Id)); var onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.Id)); var onlyInA = listA.Select(e => e.Id)…
Except(listB.Select(e => e.Id)); var onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.Id)); var onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.Id));
var onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.Id)); var onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.Id)); var onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.Id)); var onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.Id)); var onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.Id)); var onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.Id)); var onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.Id)); var onlyInA = listA.Select(e => e.Id) .Except(listB.Select(e => e.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: Skip top 2 highest salaries and take next 2 var result = employees .OrderByDescending(e => e.Salary) .Skip(2) .Take(2); Skip top 2 highest salaries and take next 2 var result = employees .OrderByDescending(e => e.Salary) .Skip(2) .Take(2); Skip top 2 highest salaries and take next 2 var result = employees .OrderByDescending(e => e.Salary) .Skip(2) .Take(2);… Skip top 2 highest salaries and take next 2 var result =…
employees .OrderByDescending(e => e.Salary) .Skip(2) .Take(2);
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: bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(e => e.Salary >…
bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(e => e.Salary > 50000); bool allHigh = employees.All(e => e.Salary > 50000);
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.
Install Toolliyo like an app Free
Home-screen access to tutorials, coding practice & career tools — no app store needed.
On iPhone/iPad: tap Share then Add to Home Screen.