実践で役立つ C#プログラミングのイディオム/定石&パターン その4
Chapter3 ラムダ式と LINQ の基礎
今回から Chapter 3 です。
delegate
delegate メソッドを使って、引数として関数を受けるとメソッドを作ることができます。
public class Program { static void Main(string[] args) { Program p = new Program(); p.Do(); } public void Do() { int[] numbers = { 1, 2, 3, 4, 5, 6 }; int cnt = Count(numbers, IsEven); Console.WriteLine(cnt); } public delegate bool Judgemente(int value); public int Count(int[] numbers, Judgemente judge) { int count = 0; foreach (var n in numbers) { if (judge(n) == true) { count++; } } return count; } public bool IsEven(int n) { return n % 2 == 0; } }
ラムダ式
上のプログラムで IsEven() メソッドの部分をラムダ式で書くことができます。
Console.WriteLine(Count(numbers, n => n % 2 == 0));
参考サイト
本
実戦で役立つ C#プログラミングのイディオム/定石&パターン
- 作者: 出井秀行
- 出版社/メーカー: 技術評論社
- 発売日: 2017/02/18
- メディア: 大型本
- この商品を含むブログ (1件) を見る