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
Recall & Review
beginner
What is LINQ method syntax in C#?
LINQ method syntax uses chainable methods like Where(), Select(), and OrderBy() to query collections in a fluent style.
Click to reveal answer
beginner
How does Where() method work in LINQ method syntax?
Where() filters a collection by a condition you provide as a function, returning only elements that satisfy that condition.
Click to reveal answer
intermediate
Explain the difference between Select() and Where() in LINQ method syntax.
Where() filters elements based on a condition, while Select() transforms each element into a new form.
Click to reveal answer
intermediate
What does this LINQ method syntax do? numbers.Where(n => n % 2 == 0).Select(n => n * 10)
It filters the numbers collection to keep only even numbers, then multiplies each of those even numbers by 10.
Click to reveal answer
beginner
Can LINQ method syntax be chained? Give an example.
Yes, methods can be chained. Example: list.Where(x => x > 5).OrderBy(x => x).Select(x => x * 2) filters, sorts, then transforms the list.
Click to reveal answer
Which LINQ method filters elements based on a condition?
AOrderBy()
BSelect()
CWhere()
DGroupBy()
✗ Incorrect
Where() filters elements by a condition.
What does Select() do in LINQ method syntax?
ATransforms elements
BFilters elements
CSorts elements
DGroups elements
✗ Incorrect
Select() transforms each element into a new form.
How do you write a LINQ method syntax to get all numbers greater than 10 from a list named nums?
Anums.Select(n => n > 10)
Bnums.GroupBy(n => n > 10)
Cnums.OrderBy(n => n > 10)
Dnums.Where(n => n > 10)
✗ Incorrect
Where() filters elements; use nums.Where(n => n > 10).
Which of these is a valid LINQ method syntax chain?
Alist.Where(x => x < 5).Select(x => x * 2)
Blist.Select(x => x < 5).Where(x => x * 2)
Clist.OrderBy(x => x * 2).Where(x => x < 5)
Dlist.GroupBy(x => x * 2).Select(x => x < 5)
✗ Incorrect
You filter first with Where(), then transform with Select().
What type of argument do LINQ methods like Where() and Select() take?
AA string
BA lambda expression
CAn integer
DA boolean
✗ Incorrect
They take lambda expressions to define conditions or transformations.
Describe how you would use LINQ method syntax to filter and then transform a list of numbers.
Think about filtering first, then changing the values.
You got /3 concepts.
Explain the difference between LINQ query syntax and LINQ method syntax.
Focus on style and how queries are written.
You got /3 concepts.
Practice
(1/5)
1. What does the LINQ method Where do in method syntax?
easy
A. Transforms each item in a collection
B. Counts the number of items in a collection
C. Sorts the collection in ascending order
D. Filters a collection based on a condition
Solution
Step 1: Understand the purpose of Where
The Where method is used to select only those items from a collection that satisfy a given condition.
Step 2: Differentiate from other LINQ methods
Unlike Select which transforms items, or OrderBy which sorts, Where filters items based on a predicate.
Final Answer:
Filters a collection based on a condition -> Option D
Quick Check:
Where = Filter [OK]
Hint: Remember: Where filters items by condition [OK]
Common Mistakes:
Confusing Where with Select (transformation)
Thinking Where sorts the collection
Assuming Where counts items
2. Which of the following is the correct syntax to select all even numbers from a list numbers using LINQ method syntax?
easy
A. numbers.Select(n => n % 2 == 0)
B. numbers.Where(n => n % 2 == 0)
C. numbers.OrderBy(n => n % 2 == 0)
D. numbers.Count(n => n % 2 == 0)
Solution
Step 1: Identify method for filtering
To get only even numbers, we need to filter the list, which is done by Where.
Step 2: Check lambda expression correctness
The lambda n => n % 2 == 0 correctly tests if a number is even.
Final Answer:
numbers.Where(n => n % 2 == 0) -> Option B
Quick Check:
Filter even numbers = Where with condition [OK]
Hint: Use Where for filtering with a condition [OK]
Common Mistakes:
Using Select instead of Where for filtering
Using OrderBy which sorts, not filters
Using Count which returns a number, not a collection
3. What is the output of the following code?
var numbers = new List<int> {1, 2, 3, 4, 5};
var result = numbers.Where(n => n > 3).Select(n => n * 2).ToList();
Console.WriteLine(string.Join(", ", result));
medium
A. 1, 2, 3, 4, 5
B. 4, 6, 8, 10
C. 8, 10
D. 2, 4, 6, 8, 10
Solution
Step 1: Filter numbers greater than 3
The Where method selects numbers 4 and 5 from the list.
Step 2: Multiply filtered numbers by 2
The Select method transforms 4 to 8 and 5 to 10.
Final Answer:
8, 10 -> Option C
Quick Check:
Filter >3 then double = 8, 10 [OK]
Hint: Filter first, then transform with Select [OK]
Common Mistakes:
Applying Select before Where (wrong order)
Including numbers not greater than 3
Printing original list instead of result
4. Identify the error in this LINQ method syntax code:
var words = new List<string> {"apple", "banana", "cherry"};
var result = words.Where(w => w.Length > 5).Select(w => w.ToUpper);
Console.WriteLine(string.Join(", ", result));
medium
A. Missing parentheses after ToUpper method
B. Where method should be Select
C. Cannot use string.Join with LINQ
D. Lambda expression syntax is incorrect
Solution
Step 1: Check usage of ToUpper method
The code uses w.ToUpper without parentheses, but ToUpper is a method and needs ().
Step 2: Confirm other parts are correct
The Where and Select methods and lambda syntax are correct; string.Join works with IEnumerable.
Final Answer:
Missing parentheses after ToUpper method -> Option A
Quick Check:
Method calls need () [OK]
Hint: Remember to add () after method names like ToUpper [OK]
Common Mistakes:
Forgetting parentheses on method calls
Confusing Where and Select roles
Thinking string.Join can't handle LINQ results
5. Given a list of students with their names and scores:
var students = new List<(string Name, int Score)>
{
("Alice", 85), ("Bob", 92), ("Charlie", 78), ("Diana", 92)
};
Which LINQ method syntax query returns a dictionary with scores as keys and list of student names who have that score as values?
hard
A. students.GroupBy(s => s.Score).ToDictionary(g => g.Key, g => g.Select(s => s.Name).ToList())
B. students.ToDictionary(s => s.Score, s => s.Name)
C. students.Select(s => new { s.Score, s.Name }).ToDictionary()
D. students.Where(s => s.Score > 80).ToDictionary(s => s.Name, s => s.Score)
Solution
Step 1: Group students by their score
The GroupBy method groups students sharing the same score.
Step 2: Convert groups to dictionary with score keys and list of names
ToDictionary uses group key as dictionary key and selects student names as list for values.
Final Answer:
students.GroupBy(s => s.Score).ToDictionary(g => g.Key, g => g.Select(s => s.Name).ToList()) -> Option A
Quick Check:
GroupBy + ToDictionary for grouped lists [OK]
Hint: Use GroupBy then ToDictionary for grouping collections [OK]
Common Mistakes:
Using ToDictionary directly without grouping (loses duplicates)