抖音粉丝群1
『7x24小时有问必答』

AI浪潮下的计算机行业——从业者现状与未来展望
C#  Contains, Exists, Any都可以实现判断元素是否存在
性能方面:Contains 优于 Exists 优于 Any
public static void Contains_Exists_Any_Test(int num) 

        { 

            List list = new List(); 

   

            int N = num; 

            for (int i = 0; i < N; i++) 

            { 

                list.Add(i); 

            } 

            System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); 

            sw.Start(); 

            Console.WriteLine(list.Contains(N)); 

            sw.Stop(); 

            Console.WriteLine("Contains:"+sw.Elapsed.ToString()); 

   

            sw.Start(); 

            Console.WriteLine(list.Exists(i => i == N)); 

            sw.Stop(); 

            Console.WriteLine("Exists:"+ sw.Elapsed.ToString()); 

   

            sw.Start(); 

            Console.WriteLine(list.Any(i => i == N)); 

            sw.Stop(); 

            Console.WriteLine("Any:"+ sw.Elapsed.ToString()); 

        } 

在开发过程中可以根据实际情况进行选择,当list中数据量不大时使用Exists代码更简洁易懂;数据量大时推荐使用Contains;不推荐使用Any
下面的代码对比就能看出为啥数据量不大的时候推荐Exists了
class ITEM_GIDComparer : IEqualityComparer 

    { 

        public bool Equals(T orl1, T orl2) 

         { 

             if (orl1==null) 

             { 

                 return orl2 == null; 

             } 

             return orl1.ITEM_GID == orl2.ITEM_GID; 

         } 

   

        public int GetHashCode(T orl) 

         { 

             if (orl == null) 

                 return 0; 

             return orl.ITEM_GID.GetHashCode(); 

         }  

    } 

    orlclst.Contains(orlc, new ITEM_GIDComparer()) 

    //Exists一行代码就可以实现上面的功能 

    orlclst.Exists(x=>x.ITEM_GID==orlc.ITEM_GID)


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

Copyright 2010-2015. All rights reserved. 

微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码