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

Lambda expression syntax in C Sharp (C#) - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Lambda Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of a simple lambda expression
What is the output of this C# code snippet?
C Sharp (C#)
Func<int, int> square = x => x * x;
Console.WriteLine(square(5));
ACompilation error
B25
C10
D5
Attempts:
2 left
💡 Hint
The lambda takes an integer and returns its square.
❓ Predict Output
intermediate
2:00remaining
Lambda with multiple parameters and statement body
What will this code print?
C Sharp (C#)
Func<int, int, int> addAndMultiply = (a, b) => {
    int sum = a + b;
    return sum * 2;
};
Console.WriteLine(addAndMultiply(3, 4));
A14
B7
C12
DCompilation error
Attempts:
2 left
💡 Hint
The lambda sums two numbers and then doubles the result.
❓ Predict Output
advanced
2:00remaining
Lambda capturing outer variable
What is the output of this code?
C Sharp (C#)
int factor = 3;
Func<int, int> multiply = x => x * factor;
factor = 5;
Console.WriteLine(multiply(4));
ACompilation error
B15
C12
D20
Attempts:
2 left
💡 Hint
Lambdas capture variables by reference, not by value.
❓ Predict Output
advanced
2:00remaining
Lambda with incorrect syntax
Which option will cause a compilation error?
C Sharp (C#)
Func<int, int> f = x => x * 2;
AFunc<int, int> f = (x) => x * 2;
BFunc<int, int> f = x => { return x * 2; };
CFunc<int, int> f = x => { x * 2; };
DFunc<int, int> f = (int x) => x * 2;
Attempts:
2 left
💡 Hint
Check if the lambda body returns a value properly.
🧠 Conceptual
expert
2:00remaining
Understanding lambda expression type inference
Given the code below, what is the inferred delegate type of the lambda expression?
C Sharp (C#)
var list = new List<int> {1, 2, 3};
var result = list.Select(x => x.ToString());
AFunc<int, string>
BAction<int>
CPredicate<int>
DFunc<string, int>
Attempts:
2 left
💡 Hint
Select expects a function that takes an int and returns a string.

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