C# LINQ Cheat Sheet
Covers LINQ query and method syntax in C#, common operators like Where, Select and GroupBy, joins, and deferred versus immediate execution.
2 PagesIntermediateApr 8, 2026
Query vs Method Syntax
Two equivalent ways to write a LINQ query.
csharp
using System.Linq;int[] numbers = { 5, 2, 8, 1, 9, 3 };// Method syntaxvar evens = numbers.Where(n => n % 2 == 0).OrderBy(n => n).ToList();// Query syntax (equivalent)var evens2 = from n in numbers where n % 2 == 0 orderby n select n;
Common Operators
Filtering, projecting, and aggregating sequences.
csharp
var names = new List<string> { "Alice", "Bob", "Charlie" };var upper = names.Select(n => n.ToUpper()); // Projectionvar withA = names.Where(n => n.Contains('a')); // Filterbool any = names.Any(n => n.StartsWith("B")); // True if any matchbool all = names.All(n => n.Length > 2); // True if all matchint count = names.Count(n => n.Length == 5);string? first = names.FirstOrDefault(n => n.StartsWith("Z")); // null if none foundint sum = numbers.Sum();int max = numbers.Max();var grouped = names.GroupBy(n => n[0]); // Group by first letter
Joins & Aggregation
Combining and summarizing data from multiple sequences.
csharp
var joined = from o in orders join c in customers on o.CustomerId equals c.Id select new { c.Name, o.Total };decimal totalRevenue = orders.Sum(o => o.Total);var totalsByCustomer = orders .GroupBy(o => o.CustomerId) .Select(g => new { CustomerId = g.Key, Total = g.Sum(o => o.Total) });
Deferred vs Immediate Execution
When a LINQ query actually runs.
- Deferred execution- Where, Select, OrderBy build a query but don't run until it's enumerated (foreach, ToList())
- Immediate execution- ToList(), ToArray(), Count(), Sum(), First() execute the query right away
- IEnumerable<T> vs IQueryable<T>- IQueryable builds an expression tree translated to SQL by providers like EF Core
- Multiple enumeration- Re-enumerating a deferred query re-runs it; call ToList() once to cache the results
- Select vs SelectMany- Select projects 1:1; SelectMany flattens a collection of collections into one sequence
- Null-safety- FirstOrDefault/SingleOrDefault return default(T) instead of throwing when nothing matches
Pro Tip
Calling .ToList() too early forces LINQ-to-Entities queries to execute in memory instead of the database — keep IQueryable chains unmaterialized until the final query is fully built.
Was this cheat sheet helpful?
Explore Topics
#CLINQ#CLINQCheatSheet#Programming#Intermediate#QueryVsMethodSyntax#CommonOperators#JoinsAggregation#DeferredVsImmediateExecution#Functions#Databases#CheatSheet#SkillVeris
Advertisement
Sri Hayavadhana Info-Tech
Professional Web Designing Services
- Responsive Websites
- E-commerce Solutions
- SEO Friendly Design
- Fast & Secure
- Support & Maintenance