List<T>中Exists 和Contains的区别
2014-08-14 16:18
609 查看
.net编码中,使用泛型List<>时,经常遇到这样的需求:新来一个Model对象,如果已有的List中没有这条数据,则把新对象Add到List中,否则不处理
判断已有的List中是否包含这个新的model,方法有几种,最直白的foreach遍历原有List并逐个判断
另外就是使用List自带的方法Exists 和Contains了
这两个方法有什么区别呢?通过MSDN描述和实际测试,很容易发现:
Contains方法,判断结果表示对象T的内存地址,是否在List中;
Exists方法,通过委托参数,可以指定判断对象某个值,是否与List中的某条记录的对应值相等;
显然针对开头提出的需求,用Exists方法更合适。
示例代码:
PS:实现后的思考,采用.net提供的Exists 和Contains时,和使用foreach自己遍历后比较,在内部执行效率和性能上是否有本质区别呢?
个人觉得应该是一样的,只是自己实现与采用.net封装方法的区别。
判断已有的List中是否包含这个新的model,方法有几种,最直白的foreach遍历原有List并逐个判断
另外就是使用List自带的方法Exists 和Contains了
这两个方法有什么区别呢?通过MSDN描述和实际测试,很容易发现:
Contains方法,判断结果表示对象T的内存地址,是否在List中;
Exists方法,通过委托参数,可以指定判断对象某个值,是否与List中的某条记录的对应值相等;
显然针对开头提出的需求,用Exists方法更合适。
示例代码:
if(!MyList.Exists(t=>t.Id==MyModel.id)) { MyList.Add(MyModel); }
PS:实现后的思考,采用.net提供的Exists 和Contains时,和使用foreach自己遍历后比较,在内部执行效率和性能上是否有本质区别呢?
个人觉得应该是一样的,只是自己实现与采用.net封装方法的区别。
相关文章推荐
- 关于List<T>中的Exists 和Contains的区别
- 关于List<T>中的Exists 和Contains的区别
- List<T>Contains, Exists, Any之间的优缺点对比
- List<T>中对比Contains, Exists, Any之间的优缺点
- List<T>中对比Contains, Exists, Any之间的优缺点
- return null 与return new List<HaierPageView>()的区别
- List<T>与ArrayList的区别
- [C#]泛型与非泛型集合类的区别及使用例程,包括ArrayList,Hashtable,List<T>,Dictionary<Tkey,Tvalue>,SortedList<Tkey,Tvalue>,
- 泛型-java与.NET中List<T>的区别
- ArrayList的使用和List<T>的区别
- List<T>与IList<T>的区别
- C# IEnumerable<T>、IEnumerator<T>、List<T>、ArrayList、[]数组各各的区别
- C# IEnumerable<T>、IEnumerator<T>、List<T>、ArrayList、[]数组各各的区别
- List<T>和ArrayList区别
- List<T>.Contains(T item)判断是否包含的根据是什么
- wpf list<T>与ObservableCollection<T>的区别
- C# List<T> Contains<T>() 的用法
- C#中IList<T>与List<T>的区别感想
- C#中的[],Array,List<>,ArrayList的区别
- ArrayList与List<T>的区别