Bird
Raised Fist0
C Sharp (C#)programming~10 mins

LINQ query syntax in C Sharp (C#) - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - LINQ query syntax
Start with data source
Write query expression
Use from, where, select clauses
Query is not executed yet
Execute query by foreach or ToList()
Get filtered and projected results
LINQ query syntax starts with a data source, then you write a query using from, where, and select clauses. The query runs when you iterate or convert it.
Execution Sample
C Sharp (C#)
int[] numbers = {1, 2, 3, 4, 5};
var evens = from n in numbers
            where n % 2 == 0
            select n;
foreach(var num in evens) Console.WriteLine(num);
This code selects even numbers from an array and prints them.
Execution Table
StepActionEvaluationResult
1Start with numbers arraynumbers = {1,2,3,4,5}Data source ready
2Define query: from n in numbersn takes each numberQuery prepared but not run
3Apply where n % 2 == 0Check each n: 1%2=1 (false), 2%2=0 (true), 3%2=1 (false), 4%2=0 (true), 5%2=1 (false)Filter applied
4Select nSelect numbers passing whereSelected: 2,4
5Execute query with foreachIterate over selected numbersOutput: 2 4
6EndNo more numbersQuery complete
💡 All numbers checked; query executed and results printed
Variable Tracker
VariableStartAfter Step 3After Step 4Final
numbers{1,2,3,4,5}{1,2,3,4,5}{1,2,3,4,5}{1,2,3,4,5}
nundefined1,2,3,4,5 (each in turn)2,4 (filtered)2,4 (selected)
evensundefinedquery definedquery defined2,4 (after execution)
Key Moments - 3 Insights
Why doesn't the query run immediately after defining it?
The query is only defined at first (see Step 2 in execution_table). It runs later when we iterate over it (Step 5). This is called deferred execution.
What does the 'where' clause do in the query?
The 'where' clause filters the data. It checks each number and keeps only those where the condition is true (Step 3 shows how numbers are tested).
How does the 'select' clause affect the output?
The 'select' clause chooses what to output from each filtered item. Here it selects the number itself (Step 4), so output is the filtered numbers.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of 'n' when the where condition is true for the first time?
A1
B2
C3
D4
💡 Hint
Check Step 3 in execution_table where each 'n' is tested against the condition.
At which step does the query actually run and produce output?
AStep 2
BStep 3
CStep 5
DStep 4
💡 Hint
Look for the step where foreach iterates and prints results in execution_table.
If we remove the where clause, what would be the output after execution?
AAll numbers 1 to 5
BOnly odd numbers
COnly even numbers
DNo output
💡 Hint
Without filtering (where), select outputs all numbers from the source.
Concept Snapshot
LINQ query syntax:
- Start with 'from' to pick data source
- Use 'where' to filter items
- Use 'select' to choose output
- Query runs when iterated (deferred execution)
- Example: from n in numbers where n%2==0 select n
Full Transcript
This visual trace shows how LINQ query syntax works in C#. We start with a data source array of numbers. We write a query using 'from' to pick each number, 'where' to filter even numbers, and 'select' to choose them. The query is defined but not run until we loop over it with foreach. Step by step, each number is checked against the condition. Only numbers passing the filter are selected. Finally, the query runs and prints the even numbers 2 and 4. Variables like 'n' change as each number is processed. This shows deferred execution and how query clauses work together.

Practice

(1/5)
1. What does the LINQ query syntax in C# primarily help you do with collections?
easy
A. Write low-level assembly code
B. Create new classes and objects
C. Manage memory allocation manually
D. Filter, sort, group, and select data in a readable way

Solution

  1. Step 1: Understand LINQ purpose

    LINQ query syntax is designed to work with collections to filter, sort, group, and select data.
  2. Step 2: Compare options

    Options B, C, and D describe unrelated programming tasks, not LINQ's purpose.
  3. Final Answer:

    Filter, sort, group, and select data in a readable way -> Option D
  4. Quick Check:

    LINQ = Data querying [OK]
Hint: LINQ reads like English to query collections [OK]
Common Mistakes:
  • Confusing LINQ with object creation
  • Thinking LINQ manages memory
  • Assuming LINQ writes low-level code
2. Which of the following is the correct basic syntax to start a LINQ query in C#?
easy
A. var result = select item from collection;
B. var result = collection from item select;
C. var result = from item in collection select item;
D. var result = item select from collection;

Solution

  1. Step 1: Recall LINQ query syntax structure

    The correct LINQ query starts with 'from', then the range variable, then 'in' and the collection, followed by 'select'.
  2. Step 2: Match options to syntax

    Only var result = from item in collection select item; follows this correct order: 'from item in collection select item;'. Others have wrong order or keywords.
  3. Final Answer:

    var result = from item in collection select item; -> Option C
  4. Quick Check:

    from ... in ... select ... [OK]
Hint: LINQ starts with 'from' then 'in' then 'select' [OK]
Common Mistakes:
  • Swapping 'from' and 'select' keywords
  • Omitting 'in' keyword
  • Incorrect order of clauses
3. What will be the output of the following C# code?
int[] numbers = {1, 2, 3, 4, 5};
var evens = from n in numbers
            where n % 2 == 0
            select n;
foreach(var num in evens) {
    Console.Write(num + " ");
}
medium
A. 1 3 5
B. 2 4
C. 1 2 3 4 5
D. No output

Solution

  1. Step 1: Analyze the LINQ query filtering condition

    The query selects numbers where n % 2 == 0, meaning even numbers only.
  2. Step 2: Identify even numbers in the array

    From {1,2,3,4,5}, even numbers are 2 and 4.
  3. Final Answer:

    2 4 -> Option B
  4. Quick Check:

    Filter evens = 2 4 [OK]
Hint: Look for 'where' condition filtering evens [OK]
Common Mistakes:
  • Selecting odd numbers by mistake
  • Ignoring the 'where' clause
  • Assuming all numbers are selected
4. Identify the error in the following LINQ query syntax:
var result = from x collection
             where x > 10
             select x;
medium
A. Missing 'in' keyword between 'x' and 'collection'
B. Incorrect 'where' clause syntax
C. 'select' keyword should come before 'where'
D. Variable 'x' is not declared

Solution

  1. Step 1: Check the 'from' clause syntax

    The 'from' clause must have 'from variable in collection'. Here 'in' is missing.
  2. Step 2: Verify other clauses

    The 'where' and 'select' clauses are correctly placed and syntactically valid.
  3. Final Answer:

    Missing 'in' keyword between 'x' and 'collection' -> Option A
  4. Quick Check:

    'from x in collection' needed [OK]
Hint: Check 'from' clause for 'in' keyword [OK]
Common Mistakes:
  • Omitting 'in' keyword in 'from' clause
  • Misordering 'where' and 'select'
  • Assuming variable declaration needed
5. Given a list of strings words, which LINQ query syntax correctly selects words starting with 'a' and orders them alphabetically?
hard
A. var query = from w in words where w.StartsWith("a") orderby w select w;
B. var query = from w in words orderby w where w.StartsWith("a") select w;
C. var query = from w in words select w where w.StartsWith("a") orderby w;
D. var query = from w in words select w orderby w where w.StartsWith("a");

Solution

  1. Step 1: Understand LINQ clause order

    The correct order is 'from', then 'where', then 'orderby', then 'select'. var query = from w in words where w.StartsWith("a") orderby w select w; follows this order.
  2. Step 2: Verify filtering and ordering

    var query = from w in words where w.StartsWith("a") orderby w select w; filters words starting with 'a' and orders them alphabetically before selecting.
  3. Final Answer:

    var query = from w in words where w.StartsWith("a") orderby w select w; -> Option A
  4. Quick Check:

    where before orderby in LINQ [OK]
Hint: Remember clause order: from, where, orderby, select [OK]
Common Mistakes:
  • Placing 'orderby' before 'where'
  • Misplacing 'select' clause
  • Using wrong method syntax inside query