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
LINQ Query Syntax
📖 Scenario: You work in a bookstore. You have a list of books with their titles and prices. You want to find all books that cost less than $20 to recommend to budget readers.
🎯 Goal: Build a C# program that uses LINQ query syntax to select books priced below $20 from a list and display their titles.
📋 What You'll Learn
Create a list of books with exact titles and prices
Create a price limit variable set to 20
Use LINQ query syntax with from, where, and select to find books cheaper than the price limit
Print the titles of the selected books
💡 Why This Matters
🌍 Real World
Filtering and selecting data from collections is common in apps like online stores, libraries, and inventory systems.
💼 Career
Knowing LINQ query syntax helps you write clear and efficient data queries in C# jobs involving data processing and software development.
Progress0 / 4 steps
1
Create the list of books
Create a list of books called books with these exact entries: ("C# Basics", 15), ("Advanced C#", 25), ("LINQ in Action", 18), ("ASP.NET Core", 30), ("Entity Framework", 12). Use a list of tuples with string and int types.
C Sharp (C#)
Hint
Use List<(string, int)> and add the tuples exactly as shown.
2
Set the price limit
Create an integer variable called priceLimit and set it to 20.
C Sharp (C#)
Hint
Use int priceLimit = 20; inside the Main method.
3
Write the LINQ query
Use LINQ query syntax to create a variable called cheapBooks that selects the Title of books from books where the Price is less than priceLimit. Use from, where, and select keywords.
C Sharp (C#)
Hint
Use var cheapBooks = from book in books where book.Price < priceLimit select book.Title;
4
Print the selected book titles
Use a foreach loop with variable title to iterate over cheapBooks and print each title on its own line using Console.WriteLine.
C Sharp (C#)
Hint
Use foreach (var title in cheapBooks) { Console.WriteLine(title); } to print each title.
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
Step 1: Understand LINQ purpose
LINQ query syntax is designed to work with collections to filter, sort, group, and select data.
Step 2: Compare options
Options B, C, and D describe unrelated programming tasks, not LINQ's purpose.
Final Answer:
Filter, sort, group, and select data in a readable way -> Option D
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
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'.
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.
Final Answer:
var result = from item in collection select item; -> Option C
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
Step 1: Analyze the LINQ query filtering condition
The query selects numbers where n % 2 == 0, meaning even numbers only.
Step 2: Identify even numbers in the array
From {1,2,3,4,5}, even numbers are 2 and 4.
Final Answer:
2 4 -> Option B
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
Step 1: Check the 'from' clause syntax
The 'from' clause must have 'from variable in collection'. Here 'in' is missing.
Step 2: Verify other clauses
The 'where' and 'select' clauses are correctly placed and syntactically valid.
Final Answer:
Missing 'in' keyword between 'x' and 'collection' -> Option A
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
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.
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.
Final Answer:
var query = from w in words where w.StartsWith("a") orderby w select w; -> Option A