C# dictionary 遍历性能分析

1. 遍历性能,如果想通过遍历获取Dictionary 的键值对,方法有两种

 方法 一

       ///


        /// 通过key 访问键值对
        ///

        private static  void keyPerformance(Dictionary dic)
        {
            DateTime start = DateTime.Now;
            string val = string.Empty;
            string key = string.Empty;
            foreach (string item in dic.Keys)
            {
                key = item;
                val = dic[item];
            }
            DateTime end = DateTime.Now;
            TimeSpan span = end.Subtract(start);
            Console.WriteLine(" foreach keys spend time:{0}",span.TotalMilliseconds);
        }

 方法 二  性能最佳 推荐使用

        ///


        /// 通过 KeyValuePair 访问键值对(推荐使用)
        ///

        ///
        private static void keyValPerformance(Dictionary dic)
        {
            DateTime start = DateTime.Now;
            string val = string.Empty;
            string key = string.Empty;
            foreach (KeyValuePair item in dic)
            {
                key = item.Key;
                val = item.Value;
            }
            DateTime end = DateTime.Now;
            TimeSpan span = end.Subtract(start);

            Console.WriteLine(" foreach keyVals spend time:{0}", span.TotalMilliseconds);
        }

 以下是耗时对比

C# dictionary 遍历性能分析_第1张图片

耗时: keys集合遍历 > keyvaluePair遍历

2. 其它遍历

如果获取 dictionary 中的key 推荐 方法一

耗时: keyvalPair 遍历 >keys 集合遍历

如果获取 dictionary 中的value 推荐如下方法

    private static void valPerformance(Dictionary dic)
        {
            DateTime start = DateTime.Now;
            string val = "";
            foreach (string  item in dic.Values)
            {
                val = item.value;
            }
            DateTime end = DateTime.Now;
            TimeSpan span = end.Subtract(start);
            Console.WriteLine(" foreach vals spend time:{0}", span.TotalMilliseconds);
        }
 

耗时: keyValPair 遍历 > values 集合遍历

你可能感兴趣的:(C#)