51Aspx 源码服务专家 社区资讯
技术文章

.NET(C#)字典(Dictionary)遍历方法

1、使用for遍历字典(Dictionary) 注意:ElementAt()需要引入using System.Linq命名空间,Dictionary命令空间是using System.Collections.Generic;
 Dictionary<string, string> dic =
                new Dictionary<string, string> {
                    ["key1"] = "value1",
                    ["key2"] = "value2",
                    ["key3"] = "value3"
                };
         for (int i = 0; i < dic.Count; i++) {
                var item = dic.ElementAt (i);
                Console.WriteLine ("key is " + item.Key);
                Console.WriteLine ("value is " + item.Value);
            }
            for (int i = 0; i < dic.Count; i++) {
                Console.WriteLine ("key is " + dic.Keys.ElementAt (i));
                Console.WriteLine ("value is " + dic.Values.ElementAt (i));
            }
2、使用foreach遍历字典(Dictionary)
Dictionary<string, string> dic =
                new Dictionary<string, string> {
                    ["key1"] = "value1",
                    ["key2"] = "value2",
                    ["key3"] = "value3"
                };
        foreach (string key in dic.Keys) {
                Console.WriteLine ("key is " + key);
                Console.WriteLine ("value is " + dic[key]);
            }
            foreach (string value in dic.Values) {
                Console.WriteLine ("value is " + value);
            }
            foreach (KeyValuePair<string, string> item in dic) {
                Console.WriteLine ("key is " + item.Key);
                Console.WriteLine ("value is " + item.Value);
            }
3、使用while遍历字典(Dictionary)
   Dictionary<string, string> dic =
                new Dictionary<string, string> {
                    ["key1"] = "value1",
                    ["key2"] = "value2",
                    ["key3"] = "value3"
                };
         var enumerator = dic.GetEnumerator ();
            while (enumerator.MoveNext ()) {
                Console.WriteLine ("key is " + enumerator.Current.Key);
                Console.WriteLine ("value is " + enumerator.Current.Value);
            }