zoukankan      html  css  js  c++  java
  • List<T>中Exists 和Contains的区别

    .net编码中,使用泛型List<>时,经常遇到这样的需求:新来一个Model对象,如果已有的List中没有这条数据,则把新对象Add到List中,否则不处理

    判断已有的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封装方法的区别。

  • 相关阅读:
    玩转JavaScript module pattern精髓
    玩转Javascript 给JS写测试
    Feature Toggle JUnit
    状态机模式实战
    Java静态类
    Guava增强for循环
    Spring Security使用心得
    听个响
    Geoserver2.16.2初步使用
    GeoWebCache1.10.5发布arcgis瓦片服务
  • 原文地址:https://www.cnblogs.com/luyangsblog/p/3912837.html
Copyright © 2011-2022 走看看