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

Expression-bodied lambdas in C Sharp (C#) - Mini Project: Build & Apply

Choose your learning style10 modes available
Expression-bodied Lambdas in C#
📖 Scenario: You are working on a small program that processes a list of numbers. You want to use simple functions to perform calculations on these numbers.
🎯 Goal: Learn how to write expression-bodied lambda functions in C# to make your code shorter and easier to read.
📋 What You'll Learn
Create a list of integers
Create an expression-bodied lambda to double a number
Use the lambda to create a new list with doubled values
Print the new list
💡 Why This Matters
🌍 Real World
Expression-bodied lambdas are used to write short, clear functions for data processing, event handling, and callbacks in many C# applications.
💼 Career
Knowing how to write concise lambdas helps you write cleaner code and work efficiently in C# development jobs.
Progress0 / 4 steps
1
Create a list of integers
Create a list of integers called numbers with these exact values: 1, 2, 3, 4, 5
C Sharp (C#)
Hint

Use List<int> and initialize it with the values inside curly braces.

2
Create an expression-bodied lambda to double a number
Create an expression-bodied lambda called doubleNumber that takes an int parameter n and returns n * 2
C Sharp (C#)
Hint

Use Func<int, int> and the lambda arrow => with a single expression.

3
Use the lambda to create a new list with doubled values
Create a new list of integers called doubledNumbers by using numbers.ConvertAll with the doubleNumber lambda
C Sharp (C#)
Hint

Use ConvertAll method on the numbers list and pass doubleNumber as the converter.

4
Print the new list
Use a foreach loop to print each number in doubledNumbers on its own line
C Sharp (C#)
Hint

Use foreach (int num in doubledNumbers) and inside the loop use Console.WriteLine(num);.

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