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);
}
}
}
}