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();
2016 © donet5.comApache Licence 2.0