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

Lambda expression syntax in C Sharp (C#) - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Lambda expression syntax
O(n)
Understanding Time Complexity

We want to understand how the time it takes to run code with lambda expressions changes as the input grows.

Specifically, how does using a lambda affect the number of steps the program takes?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


var numbers = new List<int> {1, 2, 3, 4, 5};
var squares = numbers.Select(x => x * x).ToList();

This code creates a list of numbers and uses a lambda expression to create a new list of their squares.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: The lambda runs once for each number in the list.
  • How many times: Exactly as many times as there are items in the list.
How Execution Grows With Input

Each number causes one multiplication operation inside the lambda.

Input Size (n)Approx. Operations
1010 multiplications
100100 multiplications
10001000 multiplications

Pattern observation: The number of operations grows directly with the number of items.

Final Time Complexity

Time Complexity: O(n)

This means the time to run grows in a straight line as the list gets bigger.

Common Mistake

[X] Wrong: "Using a lambda makes the code run slower in a way that changes the time complexity."

[OK] Correct: The lambda is just a short way to write a function. It runs once per item, so it does not add extra loops or steps beyond the list size.

Interview Connect

Understanding how lambdas work with collections helps you explain code efficiency clearly and confidently in interviews.

Self-Check

"What if the lambda expression called another method that itself loops over the list? How would the time complexity change?"

Practice

(1/5)
1. What does the lambda expression x => x * 2 represent in C#?
easy
A. A variable declaration
B. A function that doubles the input value
C. A loop that runs twice
D. A conditional statement

Solution

  1. Step 1: Understand lambda syntax

    The expression x => x * 2 means a function taking input x and returning x * 2.
  2. Step 2: Interpret the operation

    It doubles the input value by multiplying it by 2.
  3. Final Answer:

    A function that doubles the input value -> Option B
  4. Quick Check:

    Lambda x => x * 2 doubles input [OK]
Hint: Lambda uses => to define short functions quickly [OK]
Common Mistakes:
  • Thinking lambda is a variable
  • Confusing lambda with loops
  • Assuming lambda is a conditional
2. Which of the following is the correct syntax for a lambda expression that takes two integers and returns their sum?
easy
A. (a, b) => a + b
B. a, b => a + b
C. (a, b) => { a + b }
D. (a, b) => a + b;

Solution

  1. Step 1: Check parameter syntax

    Parameters must be enclosed in parentheses when there is more than one, so (a, b) is correct.
  2. Step 2: Check expression body

    The expression a + b without braces is valid for single expressions. (a, b) => a + b matches this.
  3. Final Answer:

    (a, b) => a + b -> Option A
  4. Quick Check:

    Two parameters need parentheses and expression body [OK]
Hint: Use parentheses for multiple parameters in lambda [OK]
Common Mistakes:
  • Omitting parentheses for multiple parameters
  • Adding semicolon inside lambda expression
  • Using braces without return keyword incorrectly
3. What is the output of the following C# code?
Func<int, int> square = x => x * x;
Console.WriteLine(square(4));
medium
A. Compilation error
B. 8
C. 4
D. 16

Solution

  1. Step 1: Understand the lambda function

    The lambda x => x * x returns the square of the input number.
  2. Step 2: Calculate the output for input 4

    4 * 4 = 16, so square(4) returns 16.
  3. Final Answer:

    16 -> Option D
  4. Quick Check:

    Square of 4 is 16 [OK]
Hint: Lambda returns expression result directly if no braces [OK]
Common Mistakes:
  • Confusing multiplication with addition
  • Expecting lambda to print instead of return
  • Thinking lambda causes syntax error
4. Identify the error in this lambda expression:
Func<int, int> add = (x, y) => x + y;
medium
A. Parentheses around parameters are not allowed
B. Missing return keyword inside lambda
C. Lambda has too many parameters for Func<int, int>
D. Lambda expression syntax is correct

Solution

  1. Step 1: Check Func delegate signature

    Func<int, int> expects one input parameter and one output (int).
  2. Step 2: Compare lambda parameters

    The lambda has two parameters (x, y), which does not match the delegate expecting one.
  3. Final Answer:

    Lambda has too many parameters for Func<int, int> -> Option C
  4. Quick Check:

    Func<int, int> means one input, one output [OK]
Hint: Match lambda parameters count with delegate type [OK]
Common Mistakes:
  • Assuming multiple parameters allowed for Func
  • Forgetting delegate parameter count rules
  • Thinking return keyword is always needed
5. Given a list of integers, which lambda expression correctly filters out all even numbers using List<int>.Where()?
var numbers = new List<int> {1, 2, 3, 4, 5, 6};
var odds = numbers.Where( /* which lambda? */ );
hard
A. x => x % 2 == 1
B. x => x % 2 = 1
C. x => { return x % 2 == 0; }
D. x => x / 2 == 1

Solution

  1. Step 1: Understand filtering condition

    We want to keep odd numbers, so condition is x % 2 == 1.
  2. Step 2: Check lambda syntax and logic

    x => x % 2 == 1 uses correct syntax and logic to filter odds. x => x % 2 = 1 uses assignment (=) which is invalid. x => { return x % 2 == 0; } filters evens, not odds. x => x / 2 == 1 checks division, not oddness.
  3. Final Answer:

    x => x % 2 == 1 -> Option A
  4. Quick Check:

    Filter odds with modulo == 1 [OK]
Hint: Use == for comparison, % 2 == 1 filters odd numbers [OK]
Common Mistakes:
  • Using = instead of == in lambda
  • Filtering evens instead of odds
  • Confusing division with modulo
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard