1、Contains方法
Contains方法的作用是检查List中是否包含指定元素,其代码实现如下
List<string> list = new List<string>() { "a", "b", "c", "d" };
bool isExists = list.Contains("a");
Contains方法的执行时间非常短,一般在1毫秒以下。因为该方法使用了二分查找算法,在大多数情况下,找到指定元素只需要遍历集合的一半即可,所以执行速度非常快。
2、Exists方法
Exists方法是一个实例方法,可以使用委托作为它的参数来查找元素,其代码实现如下:
List<string> list = new List<string>() { "a", "b", "c", "d" };
bool isExists = list.Exists(x => x == "a");
由于Exists方法的参数是一个委托,所以其执行时间比Contains方法要长。但是,当集合中元素比较多且查找条件复杂时,Exists方法的执行时间可能比Contains方法更短。
3、Any方法
Any方法用于判断集合中是否存在满足指定条件的元素,其代码实现如下:
List<string> list = new List<string>() { "a", "b", "c", "d" };
bool isExists = list.Any(x => x == "a");
Any方法的执行时间与Exists方法相当,因为它们两个的代码实现方式都是一样的。
4、Where方法
Where方法用于筛选符合指定条件的元素,其代码实现如下:
List<string> list = new List<string>() { "a", "b", "c", "d" };
var result = list.Where(x => x == "a");
Where方法的返回值是一个IEnumerable,因为它只是筛选符合指定条件的元素,而并没有直接返回元素本身。由于Where方法是延迟求值的,所以需要使用foreach等方式来获取其返回值。文章来源:https://www.toymoban.com/news/detail-796522.html
由于Where方法返回的是延迟求值的IEnumerable,其执行时间比其他方法要长一些。但是,如果需要对集合进行复杂的筛选操作时,Where方法是一个非常好用的API。文章来源地址https://www.toymoban.com/news/detail-796522.html
到了这里,关于C# List<T>的Contains、Exists、Any、Where性能对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!