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

LINQ method syntax in C Sharp (C#)

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
Introduction

LINQ method syntax helps you easily work with collections like lists or arrays to find, filter, or change data.

You want to find all even numbers in a list.
You need to sort a list of names alphabetically.
You want to count how many items meet a condition.
You want to transform a list of numbers into their squares.
Syntax
C Sharp (C#)
collection.MethodName(arguments)
You chain methods like Where(), Select(), OrderBy() to work with data.
Each method returns a new collection or value based on the original.
Examples
Finds all even numbers from the 'numbers' list.
C Sharp (C#)
var evens = numbers.Where(n => n % 2 == 0);
Sorts the 'names' list alphabetically.
C Sharp (C#)
var namesSorted = names.OrderBy(name => name);
Creates a new list with squares of each number.
C Sharp (C#)
var squares = numbers.Select(n => n * n);
Sample Program

This program uses LINQ method syntax to find even numbers, get squares, and count even numbers in an array.

C Sharp (C#)
using System;
using System.Linq;

class Program
{
    static void Main()
    {
        int[] numbers = { 1, 2, 3, 4, 5, 6 };

        var evenNumbers = numbers.Where(n => n % 2 == 0);
        var squares = numbers.Select(n => n * n);
        var countEven = numbers.Count(n => n % 2 == 0);

        Console.WriteLine("Even numbers: " + string.Join(", ", evenNumbers));
        Console.WriteLine("Squares: " + string.Join(", ", squares));
        Console.WriteLine("Count of even numbers: " + countEven);
    }
}
OutputSuccess
Important Notes

LINQ methods do not change the original collection; they create new results.

Use lambda expressions (like n => n % 2 == 0) to specify conditions or transformations.

Summary

LINQ method syntax lets you work with collections easily using chainable methods.

Common methods include Where (filter), Select (transform), OrderBy (sort), and Count (count items).

It helps write clear and readable code for data operations.

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

  1. 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.
  2. Step 2: Differentiate from other LINQ methods

    Unlike Select which transforms items, or OrderBy which sorts, Where filters items based on a predicate.
  3. Final Answer:

    Filters a collection based on a condition -> Option D
  4. 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

  1. Step 1: Identify method for filtering

    To get only even numbers, we need to filter the list, which is done by Where.
  2. Step 2: Check lambda expression correctness

    The lambda n => n % 2 == 0 correctly tests if a number is even.
  3. Final Answer:

    numbers.Where(n => n % 2 == 0) -> Option B
  4. 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

  1. Step 1: Filter numbers greater than 3

    The Where method selects numbers 4 and 5 from the list.
  2. Step 2: Multiply filtered numbers by 2

    The Select method transforms 4 to 8 and 5 to 10.
  3. Final Answer:

    8, 10 -> Option C
  4. 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

  1. Step 1: Check usage of ToUpper method

    The code uses w.ToUpper without parentheses, but ToUpper is a method and needs ().
  2. Step 2: Confirm other parts are correct

    The Where and Select methods and lambda syntax are correct; string.Join works with IEnumerable.
  3. Final Answer:

    Missing parentheses after ToUpper method -> Option A
  4. 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

  1. Step 1: Group students by their score

    The GroupBy method groups students sharing the same score.
  2. 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.
  3. Final Answer:

    students.GroupBy(s => s.Score).ToDictionary(g => g.Key, g => g.Select(s => s.Name).ToList()) -> Option A
  4. 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)
  • Swapping keys and values in dictionary
  • Using Select without grouping for this task