除了使用
之外,还有其他方法可以遍历所有键和值foreach (KeyValuePair<T, T> kv in _dic)
答案 0 :(得分:3)
我真的不知道你为什么要这样做,但是......
var enumerator = _dic.GetEnumerator();
while (enumerator.MoveNext())
{
var pair = enumerator.Current;
// ...
}
这当然是foreach
在幕后做的事情。
答案 1 :(得分:2)
您可以循环遍历所有键,或将所有值作为独立列表循环:
foreach(var key in _dic.Keys)
或
foreach(var value in _dic.Values)
我经常使用Keys列表并在循环中引用字典来获取值。
答案 2 :(得分:0)
您可以使用LINQ表达式。
using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApplication2
{
class Program
{
static void Main()
{
var dict = new Dictionary<string, string>();
dict.Add("toto","this is toto");
dict.Add("tata", "this is tata");
var keys = dict.Where(p => p.Key == "toto"); // LINQ expression is here
foreach (var key in keys)
{
Console.WriteLine(key);
}
Console.Read();
}
}
}
}