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

Expression-bodied lambdas in C Sharp (C#) - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Expression-bodied lambdas
O(n)
Understanding Time Complexity

We want to understand how the time it takes to run expression-bodied lambdas changes as the input grows.

Specifically, how does the number of operations scale when using these lambdas in code?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


Func square = x => x * x;

int[] numbers = {1, 2, 3, 4, 5};

foreach (var num in numbers)
{
    Console.WriteLine(square(num));
}
    

This code defines a simple expression-bodied lambda to square a number and applies it to each item in an array.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: The foreach loop that calls the lambda for each number.
  • How many times: Once for each element in the array.
How Execution Grows With Input

As the number of elements increases, the lambda runs once per element.

Input Size (n)Approx. Operations
1010 calls to the lambda
100100 calls to the lambda
10001000 calls to the lambda

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

Final Time Complexity

Time Complexity: O(n)

This means the time to complete grows in a straight line as the input size grows.

Common Mistake

[X] Wrong: "Expression-bodied lambdas run faster and reduce time complexity."

[OK] Correct: The lambda syntax is just a shorter way to write code; it does not change how many times the operation runs.

Interview Connect

Understanding how lambdas affect time helps you explain your code clearly and shows you know how code scales with input size.

Self-Check

"What if the lambda called another function inside it? How would that affect the time complexity?"

Practice

(1/5)
1. What is the main purpose of using an expression-bodied lambda in C#?
easy
A. To write a short function with a single expression without braces or return keyword
B. To declare a variable with a complex type
C. To create a class with multiple methods
D. To handle exceptions in a concise way

Solution

  1. Step 1: Understand expression-bodied lambda syntax

    Expression-bodied lambdas use the => operator followed by a single expression, simplifying function syntax.
  2. Step 2: Identify the purpose

    This syntax is used to write short functions without braces or explicit return statements.
  3. Final Answer:

    To write a short function with a single expression without braces or return keyword -> Option A
  4. Quick Check:

    Expression-bodied lambda = short single-expression function [OK]
Hint: Remember: expression-bodied lambdas simplify single-expression functions [OK]
Common Mistakes:
  • Confusing with variable declarations
  • Thinking it creates classes or handles exceptions
  • Assuming it requires braces and return keyword
2. Which of the following is the correct syntax for an expression-bodied lambda that adds two integers a and b?
easy
A. (a, b) => a + b
B. (a, b) => a + b;
C. (a, b) => { return a + b; }
D. (a, b) => { a + b }

Solution

  1. Step 1: Identify expression-bodied lambda syntax

    Expression-bodied lambdas use => followed by a single expression without braces or return keyword.
  2. Step 2: Check each option

    (a, b) => a + b correctly uses (a, b) => a + b without braces or return. (a, b) => { return a + b; } uses braces and return (not expression-bodied). (a, b) => a + b; has a semicolon after expression (not needed). (a, b) => { a + b } uses braces without return (invalid).
  3. Final Answer:

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

    Expression-bodied lambda syntax = (params) => expression [OK]
Hint: No braces or return keyword in expression-bodied lambdas [OK]
Common Mistakes:
  • Adding braces and return keyword
  • Including semicolon after expression
  • Using braces without return keyword
3. What is the output of the following C# code?
Func<int, int> square = x => x * x;
Console.WriteLine(square(4));
medium
A. 8
B. 4
C. 16
D. Compilation error

Solution

  1. Step 1: Understand the lambda function

    The lambda expression x => x * x defines a function that returns the square of x.
  2. Step 2: Evaluate the function call

    Calling square(4) computes 4 * 4 = 16.
  3. Final Answer:

    16 -> Option C
  4. Quick Check:

    4 squared = 16 [OK]
Hint: Multiply input by itself to get square [OK]
Common Mistakes:
  • Confusing output with input
  • Expecting compilation error
  • Misreading the lambda expression
4. Identify the error in the following expression-bodied lambda:
Func<int, int> increment = x => { x + 1; };
medium
A. Semicolon after expression is invalid
B. Braces are not allowed in expression-bodied lambdas
C. Lambda must have two parameters
D. Missing return keyword inside braces

Solution

  1. Step 1: Analyze the lambda syntax

    The lambda uses braces, so it must have an explicit return statement to return a value.
  2. Step 2: Identify the missing return

    Inside braces, the expression x + 1 is evaluated but not returned, causing a compile error.
  3. Final Answer:

    Missing return keyword inside braces -> Option D
  4. Quick Check:

    Braces require return keyword [OK]
Hint: Use return inside braces or remove braces for expression-bodied lambda [OK]
Common Mistakes:
  • Assuming braces are disallowed
  • Thinking semicolon after expression is invalid
  • Expecting multiple parameters
5. Given a list of integers, which expression-bodied lambda correctly filters out even numbers and returns their squares?
var numbers = new List<int> {1, 2, 3, 4, 5};
var result = numbers.Where( /* lambda here */ ).Select(x => x * x).ToList();
hard
A. x => x % 2 == 0
B. x => x % 2 != 0
C. x => { return x % 2 != 0; }
D. x => { x % 2 != 0; }

Solution

  1. Step 1: Understand filtering condition

    We want to keep odd numbers, so the condition is x % 2 != 0.
  2. Step 2: Choose correct lambda syntax

    x => x % 2 != 0 uses expression-bodied lambda without braces, correctly returning the condition. x => x % 2 == 0 keeps even numbers (wrong). x => { return x % 2 != 0; } uses braces with return (valid but not expression-bodied). x => { x % 2 != 0; } uses braces without return (invalid).
  3. Final Answer:

    x => x % 2 != 0 -> Option B
  4. Quick Check:

    Filter odds with expression-bodied lambda [OK]
Hint: No braces and return for expression-bodied lambdas [OK]
Common Mistakes:
  • Using braces without return
  • Choosing wrong condition for filtering
  • Mixing expression-bodied with block-bodied syntax
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