1、使用for遍历字典(Dictionary)
由于 Dictionary 不是基于索引的集合,所以直接使用 for 循环遍历有些不太方便,但可以通过转换字典的键或值为列表或使用元素索引来实现。ElementAt()
需要引入using System.Linq
命名空间,Dictionary
命令空间是using System.Collections.Generic
;
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication { class Program { static void Main(string[] args) { 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)
foreach 循环是遍历字典中的每个元素(键值对)最直接的方法。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication { class Program { static void Main(string[] args) { 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)
使用 while 循环遍历字典类似于使用 for 循环,需要借助索引,使用ElementAt()
访问,代码如下,
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication { class Program { static void Main(string[] args) { 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); } } } }