C#核心知识回顾——12.lambda表达式、List排序、协变和逆变
发布人:shili8
发布时间:2024-10-18 22:35
阅读次数:0
**C#核心知识回顾——12.lambda表达式、List排序、协变和逆变**
在本文中,我们将回顾一些重要的C#核心知识,包括lambda表达式、List排序、协变和逆变。
###1. lambda表达式lambda表达式是一种匿名函数,它可以作为参数传递给其他方法或作为事件处理器使用。lambda表达式通常用于简化代码,并且可以减少编写的代码量。
**示例代码**
csharp// 使用lambda表达式来过滤集合中的元素List<int> numbers = new List<int> {1,2,3,4,5 }; numbers.Where(n => n %2 ==0).ToList(); // 过滤出偶数// 使用lambda表达式来排序集合中的元素List<string> names = new List<string> { "张三", "李四", "王五" }; names.OrderBy(n => n.Length).ToList(); // 按照长度排序
**注释**
* lambda表达式的语法为:`x => x +1`,其中 `x` 是输入参数。
* lambda表达式可以包含多个语句,但通常只使用一个语句。
* lambda表达式可以作为方法的参数传递给其他方法。
###2. List排序List排序是指对集合中的元素进行排序。C#提供了多种排序算法,包括快速排序、希尔排序等。
**示例代码**
csharp// 使用快速排序来排序集合中的元素List<int> numbers = new List<int> {1,2,3,4,5 }; numbers.Sort(); // 按照升序排序// 使用lambda表达式来排序集合中的元素List<string> names = new List<string> { "张三", "李四", "王五" }; names.OrderBy(n => n.Length).ToList(); // 按照长度排序
**注释**
* Sort()方法使用快速排序算法对集合进行排序。
* OrderBy()方法使用lambda表达式来指定排序的条件。
###3. 协变和逆变协变和逆变是指类型之间的关系。协变是指子类可以赋值给父类,而逆变是指父类可以赋值给子类。
**示例代码**
csharp// 协变示例class Animal { } class Dog : Animal { } Dog dog = new Dog(); Animal animal = dog; // 协变// 逆变示例class Animal { } class Dog : Animal { } Animal animal = new Dog(); // 逆变
**注释**
* 协变是指子类可以赋值给父类。
* 逆变是指父类可以赋值给子类。
###4. 总结本文回顾了lambda表达式、List排序、协变和逆变等重要的C#核心知识。这些知识对于编写高质量的代码至关重要,希望通过本文能够帮助读者更好地理解这些概念。