Lambda Expression คือ ฟังก์ชันแบบไม่มีชื่อ (Anonymous Function) ใช้ Token => (อ่านว่า "goes to") แยกพารามิเตอร์และ Body
Syntax
(parameters) => expression
(parameters) => { statements; }
ตัวอย่าง: หา Index ของเลขคู่แรก
using System;
using System.Collections.Generic;
class Demo
{
static void Main()
{
List<int> list = new List<int>() { 21, 17, 40, 11, 9 };
// Lambda: x => x % 2 == 0
int index = list.FindIndex(x => x % 2 == 0);
Console.WriteLine("Index: " + index); // 2 (คือ 40)
}
}
ผลลัพธ์
Index: 2
รูปแบบ Lambda ทั่วไป
| รูปแบบ | ตัวอย่าง |
|---|---|
| ไม่มีพารามิเตอร์ | () => Console.WriteLine("Hi") |
| 1 พารามิเตอร์ | x => x * 2 |
| หลายพารามิเตอร์ | (x, y) => x + y |
| Statement Body | x => { var t = x*2; return t; } |
การใช้งานทั่วไป
- LINQ:
Where(x => x > 5),Select(x => x.Name) - Event Handler:
btn.Click += (s, e) => { } - Thread/Task:
Task.Run(() => DoWork())