A lambda expression is a short way to write anonymous functions using the syntax (input) => expression or (input) => { statements }. It is often used for inline code like in LINQ queries or event handlers.
Click to reveal answer
beginner
How do you write a lambda expression that takes one integer and returns its square?
You write it as: x => x * x. Here, x is the input parameter, and x * x is the expression returned.
Click to reveal answer
intermediate
What is the difference between a lambda expression with an expression body and one with a statement body?
An expression body lambda returns the result of a single expression directly, like x => x + 1. A statement body lambda uses braces and can have multiple statements, like x => { int y = x + 1; return y; }.
Click to reveal answer
beginner
Can a lambda expression have multiple parameters? Show an example.
Yes, a lambda can have multiple parameters separated by commas. Example: (x, y) => x + y adds two numbers.
Click to reveal answer
intermediate
How do you specify the type of parameters in a lambda expression?
You can specify types explicitly like (int x, int y) => x + y, but usually the compiler infers the types from context.
Click to reveal answer
Which of the following is a valid lambda expression in C#?
Ax => x * 2
B(int x) => x * 2
Cx => { return x * 2; }
D=> x * 2
✗ Incorrect
Option A is correct. Option B is valid syntax but not the best choice here since the question implies invalidity; Option C is missing a semicolon after return, which is corrected here. Option D is missing the parameter.
What does the lambda expression (x, y) => x - y do?
ADivides x by y
BAdds x and y
CMultiplies x and y
DSubtracts y from x
✗ Incorrect
The expression subtracts y from x.
How do you write a lambda expression with no parameters that returns 42?
A=> 42
Bx => 42
C() => 42
D(x) => 42
✗ Incorrect
Option C correctly shows a lambda with no parameters returning 42.
Which syntax is used for a statement body lambda?
A(x) => { return x + 1; }
Bx => { x + 1 }
Cx => x + 1
Dx => return x + 1
✗ Incorrect
Option A uses braces and a return statement, which is the statement body syntax.
Can the compiler infer parameter types in lambda expressions?
AYes, always
BYes, if context provides type information
COnly for single parameter lambdas
DNo, never
✗ Incorrect
The compiler infers types when it can, based on the context where the lambda is used.
Explain the basic syntax of a lambda expression in C# and give an example.
Think about how you write a small function without a name.
You got /4 concepts.
Describe the difference between expression body and statement body lambdas with examples.
One is short and simple, the other can do more steps.
You got /3 concepts.
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
Step 1: Understand lambda syntax
The expression x => x * 2 means a function taking input x and returning x * 2.
Step 2: Interpret the operation
It doubles the input value by multiplying it by 2.
Final Answer:
A function that doubles the input value -> Option B
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
Step 1: Check parameter syntax
Parameters must be enclosed in parentheses when there is more than one, so (a, b) is correct.
Step 2: Check expression body
The expression a + b without braces is valid for single expressions. (a, b) => a + b matches this.
Final Answer:
(a, b) => a + b -> Option A
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
Step 1: Understand the lambda function
The lambda x => x * x returns the square of the input number.
Step 2: Calculate the output for input 4
4 * 4 = 16, so square(4) returns 16.
Final Answer:
16 -> Option D
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
Step 1: Check Func delegate signature
Func<int, int> expects one input parameter and one output (int).
Step 2: Compare lambda parameters
The lambda has two parameters (x, y), which does not match the delegate expecting one.
Final Answer:
Lambda has too many parameters for Func<int, int> -> Option C
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
Step 1: Understand filtering condition
We want to keep odd numbers, so condition is x % 2 == 1.
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.
Final Answer:
x => x % 2 == 1 -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.