zoukankan      html  css  js  c++  java
  • Dictionary的遍历和修改

     

            /// <summary>
            /// 初始化一个Dic
            /// </summary>
            public static void mainTest()
            {
                Dictionary<String, Int32> dic = new Dictionary<String, Int32>();
                dic.Add("1", 1);
                dic.Add("2", 2);
                dic.Add("3", 3);
    
                Console.WriteLine("Org=============");
                foreachTravelDic(dic);
    
                modifyDic1(dic);
                Console.WriteLine("modify1=============");
                foreachTravelDic(dic);
    
    
                modifyDic2(dic);
                Console.WriteLine("modify2=============");
                foreachTravelDic(dic);
    
                Console.ReadKey();
            }

     

            /// <summary>
            /// foreach遍历Dictionary
            /// </summary>
            /// <param name="dic"></param>
            public static void foreachTravelDic(Dictionary<String, Int32> dic)
            {
                foreach (KeyValuePair<String, Int32> kvp in dic)
                {
                    Console.WriteLine(String.Format("Key:{0}; Value:{1}", kvp.Key, kvp.Value));
                    //dic[kvp.Key] = 2;//此操作会报错
                }
            }
    
    
            /// <summary>
            ///使用dic.Keys.ToArray方法遍历时更改Dic
            /// </summary>
            /// <param name="dic"></param>
            private static void modifyDic2(Dictionary<String, Int32> dic)
            {
                String[] keyStr = dic.Keys.ToArray<String>();
                for (int i = 0; i < keyStr.Length; i++)
                {
                    dic[keyStr[i]] = dic[keyStr[i]] + 22;
                }
            }
    
            /// <summary>
            /// 使用dic.Keys.CopyTo方法遍历时更改Dic
            /// </summary>
            /// <param name="dic"></param>
            private static void modifyDic1(Dictionary<String, Int32> dic)
            {
                int dicCount = dic.Keys.Count;
                String[] strKey = new String[dicCount];
                dic.Keys.CopyTo(strKey, 0);//支持.net2.0
                for (int i = 0; i < strKey.Length; i++)
                {
                    if (dic.ContainsKey(strKey[i]))
                    {
                        dic[strKey[i]] = dic[strKey[i]] + 11;
                    }
                }
            }

     

    output:

    Org=============
    Key:1; Value:1
    Key:2; Value:2
    Key:3; Value:3
    modify1=============
    Key:1; Value:12
    Key:2; Value:13
    Key:3; Value:14
    modify2=============
    Key:1; Value:34
    Key:2; Value:35
    Key:3; Value:36

  • 相关阅读:
    m_Orchestrate learning system---三十一、模板和需求的关系
    你如何破解后安装PS cs6
    STL 源代码分析 算法 stl_algo.h -- pre_permutation
    霸气侧漏HTML5--之--canvas(1) api + 弹球例子
    hello nodejs
    整洁的正则表达式教程,这很容易理解
    基于Gsoap 的ONVIF C++ 库
    一个常见的错误时编写代码
    IT只忍者龟Photoshop简单人像的头发抠图过程
    彩色图像--色彩空间 HSI(HSL)、HSV(HSB)
  • 原文地址:https://www.cnblogs.com/softidea/p/3342941.html
Copyright © 2011-2022 走看看