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

Expression-bodied lambdas in C Sharp (C#) - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Expression-bodied Lambdas Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of an expression-bodied lambda with arithmetic
What is the output of this C# code using an expression-bodied lambda?
C Sharp (C#)
Func<int, int> square = x => x * x;
Console.WriteLine(square(5));
A10
B25
C5
DCompilation error
Attempts:
2 left
💡 Hint
Remember that the lambda returns the result of x multiplied by itself.
❓ Predict Output
intermediate
2:00remaining
Output of expression-bodied lambda with string interpolation
What does this expression-bodied lambda print?
C Sharp (C#)
Func<string, string> greet = name => $"Hello, {name}!";
Console.WriteLine(greet("Anna"));
AHello, Anna!
BHello, {name}!
Cgreet(Anna)
DCompilation error
Attempts:
2 left
💡 Hint
The lambda uses string interpolation to insert the name.
🔧 Debug
advanced
2:00remaining
Identify the error in this expression-bodied lambda
What error does this code produce?
C Sharp (C#)
Func<int, int> add = x => { x + 2; };
Console.WriteLine(add(3));
ACompilation error: Missing return statement
BOutputs 5
COutputs 3
DRuntime error: NullReferenceException
Attempts:
2 left
💡 Hint
Expression-bodied lambdas must return a value directly without braces or must use return inside braces.
❓ Predict Output
advanced
2:00remaining
Output of expression-bodied lambda with conditional operator
What is the output of this code?
C Sharp (C#)
Func<int, string> checkEven = n => n % 2 == 0 ? "Even" : "Odd";
Console.WriteLine(checkEven(7));
A7
BEven
CCompilation error
DOdd
Attempts:
2 left
💡 Hint
The lambda returns "Even" if the number is divisible by 2, otherwise "Odd".
❓ Predict Output
expert
3:00remaining
Output of nested expression-bodied lambdas
What is the output of this nested expression-bodied lambda code?
C Sharp (C#)
Func<int, Func<int, int>> multiplier = x => y => x * y;
var times3 = multiplier(3);
Console.WriteLine(times3(4));
A7
B3
C12
DCompilation error
Attempts:
2 left
💡 Hint
The outer lambda returns another lambda that multiplies two numbers.

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