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

Expression-bodied lambdas in C Sharp (C#) - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create an expression-bodied lambda that adds two numbers.

C Sharp (C#)
Func<int, int, int> add = (x, y) => x [1] y;
Drag options to blanks, or click blank then click option'
A*
B-
C+
D/
Attempts:
3 left
💡 Hint
Common Mistakes
Using '-' instead of '+' will subtract the numbers.
Using '*' or '/' will multiply or divide instead of adding.
2fill in blank
medium

Complete the code to create an expression-bodied lambda that returns the square of a number.

C Sharp (C#)
Func<int, int> square = x => x [1] x;
Drag options to blanks, or click blank then click option'
A*
B+
C-
D/
Attempts:
3 left
💡 Hint
Common Mistakes
Using '+' will add the number to itself, not square it.
Using '-' or '/' will not produce the square.
3fill in blank
hard

Fix the error in the expression-bodied lambda that returns true if a number is even.

C Sharp (C#)
Func<int, bool> isEven = x => x [1] 2 == 0;
Drag options to blanks, or click blank then click option'
A+
B%
C/
D-
Attempts:
3 left
💡 Hint
Common Mistakes
Using '+' or '-' will not check for evenness.
Using '/' will give the quotient, not the remainder.
4fill in blank
hard

Fill both blanks to create an expression-bodied lambda that returns true if a string is longer than 5 characters.

C Sharp (C#)
Func<string, bool> isLong = s => s.[1] > [2];
Drag options to blanks, or click blank then click option'
ALength
B5
CCount
D10
Attempts:
3 left
💡 Hint
Common Mistakes
Using Count instead of Length for strings.
Comparing to 10 instead of 5.
5fill in blank
hard

Fill all three blanks to create an expression-bodied lambda that returns a dictionary with keys as uppercase strings and values as their lengths.

C Sharp (C#)
var result = [1].ToDictionary([2] => [2].ToUpper(), [3] => [3].Length);
Drag options to blanks, or click blank then click option'
Awords
Bword
Dlist
Attempts:
3 left
💡 Hint
Common Mistakes
Using different variable names inconsistently.
Using 'list' instead of the actual collection name.

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