13,766,261 members
Alternative Tip/Trick
alternative version

Stats

14.6K views
22 bookmarked
Posted 1 Oct 2015
Licenced CPOL

Understand Lambda Expressions in 3 Minutes (Continuation)

, 1 Oct 2015
This is an alternative for "Understand Lambda Expressions in 3 minutes"

I like the Original-Tip very much, because it is short and clear, and what is explained is well explained. Please refer to it, otherwise this one is incomplete.

But I miss some important topics, that the article really meets its title "Understand Lambda..."

These are:

• Lambdas can be assigned to variables
• Can have several lines
• Can have several parameters
• Can be void
• Can have `return`-Statement

So here is a short glimpse how these mentioned features can look like:

```  1  void foo() {
2     List<int> numbers = new List<int> { 11, 13, 37, 52, 54, 88 };  // data
3
4     // original - sample
5     List<int> oddNumbers = numbers.Where(n => n % 2 == 1).ToList();
6
7     // original - lambda, assigned to a variable
8     Func<int, bool> isOdd = n => n % 2 == 1;
9     oddNumbers = numbers.Where(isOdd).ToList();
10
11    // complex sample, assigned, with lines, params, void, return-statement
12     var output = new List<string>();
13     Action<int, int> tryCreateLine = (i1, i2) => {
14        var result = i2 - i1;
15        if (result < 10) return;   // reject create the line
16        output.Add(string.Format("{0} - {1} = {2}", i2, i1, result));
17     };
18     for (var i = 1; i < numbers.Count; i++) tryCreateLine(numbers[i - 1], numbers[i]);
19     MessageBox.Show(string.Join("\n", output), "calculations with result > 10");
20  }
```

The Messagebox-Output is as given below:

```calculations with result > 10
---------------------------
37 - 13 = 24
52 - 37 = 15
88 - 54 = 34```

I don't explain the code - it is self-explanatory. And you will recognize and understand each of the missing topics mentioned above.

You see: Lambdas support the complete C#-power - if wanted, one could write complete programs without any "normal" function.
But as the Original-Author already said:

Lambda expressions should be short. A complex definition makes the calling code difficult to read.

Share

 Germany
No Biography provided

You may also be interested in...

 Pro Pro

 First Prev Next
 Action Delegate does not return a value Jimmy_James_J2-Oct-15 9:05 Jimmy_James_J 2-Oct-15 9:05
 Re: Action Delegate does not return a value Mr.PoorEnglish2-Oct-15 9:26 Mr.PoorEnglish 2-Oct-15 9:26
 Re: Action Delegate does not return a value PHenry2-Oct-15 11:21 PHenry 2-Oct-15 11:21
 Last Visit: 15-Nov-18 17:13     Last Update: 15-Nov-18 17:13 Refresh 1