C# lambda 语法 ,拉姆达表达式 语法

拉姆达表达式基识点

C#中的Lambda表达式可以用于许多场景,包括:

1.LINQ查询:Lambda表达式可以用于创建查询语句,例如筛选、排序、分组、聚合等。

2.委托:Lambda表达式可以用于创建匿名方法,作为委托类型的实例,用于事件处理、线程池等。

3.泛型委托:Lambda表达式可以用于泛型委托类型,例如Action和Func。

4.并行编程:Lambda表达式可以用于Parallel类和Task类等多线程编程场景,例如并行处理集合、异步执行任务等。

5.表达式树:Lambda表达式可以用于创建表达式树,用于ORM(对象关系映射)、序列化等场景。

总的来说,Lambda表达式可以简化代码,提高开发效率,让代码更加简洁、易于维护。


拉姆达表达代码示例

以下是几个常见场景下的C# Lambda表达式示例:

1.使用Lambda表达式筛选集合中的元素:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();//只查可以整除2的数据

2.使用Lambda表达式创建匿名方法,作为委托类型的实例:

EventHandler handler = (sender, e) => Console.WriteLine("Button clicked");
button1.Click += handler;

3.使用Lambda表达式创建泛型委托类型的实例:

Action<int> printNumber = x => Console.WriteLine(x);
printNumber(42);

4.使用Lambda表达式并行处理集合中的元素:

List<int> numbers = Enumerable.Range(1, 1000000).ToList();
Parallel.ForEach(numbers, x => Console.WriteLine(x));

5.使用Lambda表达式创建表达式树,用于ORM(对象关系映射):

Expression<Func<Customer, bool>> filter = c => c.Name.StartsWith("A") && c.Age >= 18;
List<Customer> customers = dbContext.Customers.Where(filter).ToList();


果糖网