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

LINQ with custom objects in C Sharp (C#) - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What is LINQ in C#?
LINQ (Language Integrated Query) is a feature in C# that allows you to query collections like arrays or lists using a readable, SQL-like syntax directly in the code.
Click to reveal answer
beginner
How do you define a custom object to use with LINQ?
A custom object is a class you create with properties. For example, a <code>Person</code> class with <code>Name</code> and <code>Age</code> properties can be used in LINQ queries.
Click to reveal answer
beginner
What does this LINQ query do?
var adults = people.Where(p => p.Age >= 18);
This query selects all people whose Age is 18 or older. It filters the list to only adults.
Click to reveal answer
beginner
How can you select only the names from a list of custom objects using LINQ?
Use the Select method to pick the Name property: var names = people.Select(p => p.Name); This creates a list of names.
Click to reveal answer
beginner
What is the difference between Where and Select in LINQ?
Where filters items based on a condition (like a sieve). Select transforms each item into something new (like picking a part of each item).
Click to reveal answer
What does this LINQ query return?
var result = people.Where(p => p.Age < 30);
AAll people younger than 30
BAll people older than 30
CAll people exactly 30 years old
DAll people regardless of age
Which LINQ method would you use to get only the names from a list of Person objects?
AWhere
BGroupBy
COrderBy
DSelect
Given a list of custom objects, how do you filter items with LINQ?
AUse Where
BUse Select
CUse OrderBy
DUse ToList
What type of object does a LINQ query like people.Where(...) return?
AA single object
BA filtered collection
CAn integer count
DA boolean value
Which keyword is used in LINQ lambda expressions to represent each item?
Aitem
Bvar
Cp
D=>
Explain how to use LINQ to filter a list of custom objects based on a property.
Think about how you pick only some items from a list.
You got /5 concepts.
    Describe the difference between the LINQ methods Where and Select when working with custom objects.
    One chooses items, the other picks parts of items.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does LINQ primarily help you do with custom objects in C#?
      easy
      A. Create new classes automatically
      B. Compile code faster
      C. Filter, sort, and select data easily
      D. Manage memory manually

      Solution

      1. Step 1: Understand LINQ's purpose

        LINQ is designed to query collections like lists of objects easily.
      2. Step 2: Identify LINQ's main features

        It helps filter, sort, and select data without manual loops.
      3. Final Answer:

        Filter, sort, and select data easily -> Option C
      4. Quick Check:

        LINQ = Filter, sort, select [OK]
      Hint: Remember LINQ is for querying data collections [OK]
      Common Mistakes:
      • Thinking LINQ creates classes
      • Confusing LINQ with compilation
      • Assuming LINQ manages memory
      2. Which of the following is the correct syntax to select all names from a list of Person objects using LINQ?
      easy
      A. var names = people.Select(p => p.Name());
      B. var names = people.Select(p.Name);
      C. var names = people.Select(p => p);
      D. var names = people.Select(p => p.Name);

      Solution

      1. Step 1: Understand Select syntax

        Select expects a lambda expression to pick a property, like p => p.Name.
      2. Step 2: Check each option

        var names = people.Select(p => p.Name); uses correct lambda syntax. var names = people.Select(p.Name); misses lambda. var names = people.Select(p => p); selects whole object. var names = people.Select(p => p.Name()); wrongly calls Name as method.
      3. Final Answer:

        var names = people.Select(p => p.Name); -> Option D
      4. Quick Check:

        Select needs lambda with property [OK]
      Hint: Use lambda syntax p => p.Property for Select [OK]
      Common Mistakes:
      • Omitting lambda arrow =>
      • Calling property as method
      • Selecting whole object instead of property
      3. Given the class Person { public string Name; public int Age; } and list people with three persons: Alice(30), Bob(25), and Carol(35), what does this LINQ query return?
      var result = people.Where(p => p.Age > 28).Select(p => p.Name).ToList();
      medium
      A. ["Alice", "Carol"]
      B. ["Bob"]
      C. ["Alice", "Bob", "Carol"]
      D. Empty list

      Solution

      1. Step 1: Filter people older than 28

        Alice is 30 (yes), Bob is 25 (no), Carol is 35 (yes).
      2. Step 2: Select their names

        Names selected are "Alice" and "Carol".
      3. Final Answer:

        ["Alice", "Carol"] -> Option A
      4. Quick Check:

        Age > 28 filters Alice and Carol [OK]
      Hint: Filter first, then select property [OK]
      Common Mistakes:
      • Including Bob who is younger
      • Selecting whole object instead of names
      • Confusing > with <
      4. What is wrong with this LINQ query?
      var adults = people.Where(p => p.Age >= 18).Select(p => p.Name);
      foreach(var name in adults) Console.WriteLine(name);
      medium
      A. The query is correct and will print all names of adults
      B. The lambda expression syntax is incorrect
      C. The query is missing ToList() or ToArray(), so it won't compile
      D. The Where clause should be after Select

      Solution

      1. Step 1: Check LINQ query syntax

        Where and Select are used correctly with proper lambda syntax.
      2. Step 2: Check foreach usage

        LINQ returns IEnumerable<string>, which foreach can iterate without ToList().
      3. Final Answer:

        The query is correct and will print all names of adults -> Option A
      4. Quick Check:

        IEnumerable works with foreach directly [OK]
      Hint: IEnumerable can be iterated without ToList() [OK]
      Common Mistakes:
      • Thinking ToList() is mandatory before foreach
      • Misplacing Where and Select order
      • Incorrect lambda syntax
      5. You have a list of Product objects with properties Name (string) and Price (decimal). How do you create a dictionary with product names as keys and prices as values, but only include products costing more than 50 using LINQ?
      hard
      A. products.ToDictionary(p => p.Name, p => p.Price).Where(p => p.Value > 50);
      B. products.Where(p => p.Price > 50).ToDictionary(p => p.Name, p => p.Price);
      C. products.Select(p => new {p.Name, p.Price > 50}).ToDictionary(p => p.Name, p => p.Price);
      D. products.Where(p => p.Price > 50).Select(p => p.Name).ToDictionary();

      Solution

      1. Step 1: Filter products with price > 50

        Use Where to keep only products costing more than 50.
      2. Step 2: Convert filtered list to dictionary

        Use ToDictionary with key selector p.Name and value selector p.Price.
      3. Final Answer:

        products.Where(p => p.Price > 50).ToDictionary(p => p.Name, p => p.Price); -> Option B
      4. Quick Check:

        Filter then ToDictionary with key and value selectors [OK]
      Hint: Filter first, then use ToDictionary with key and value [OK]
      Common Mistakes:
      • Trying to filter after ToDictionary (invalid)
      • Selecting anonymous types instead of original objects
      • Calling ToDictionary without key/value selectors