如何在字典中循环,而不是使用foreach(key-valuepair)

本文关键字:foreach key-valuepair 字典 循环 | 更新日期: 2023-09-27 18:29:57

除了使用之外,还有其他方法可以循环遍历所有键和值吗

foreach (KeyValuePair<T, T> kv in _dic)

如何在字典中循环,而不是使用foreach(key-valuepair)

我真的不知道你为什么要这么做,但是。。。

var enumerator = _dic.GetEnumerator();
while (enumerator.MoveNext())
{
  var pair = enumerator.Current;
  // ...
}

当然,这就是foreach在幕后所做的。

您可以循环通过所有键,或作为独立列表的所有值:

foreach(var key in _dic.Keys)

foreach(var value in _dic.Values)

我经常使用Keys列表并在循环中引用字典来获取值。

您可以使用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();
        }
    }
}

}