1、通过KeyValuePair
var myDictionary= new Dictionary{ {"a","n" }, {"b","n" }, {"c","n" }, {"d","n" }, {"e","n" }, {"f","n" }, }; foreach (KeyValuePair entry in myDictionary) { Console.WriteLine($"key={entry.Key},value={entry.Value}"); }
2、使用var实现遍历
var myDictionary= new Dictionary{ {"a",11 }, {"b",22 }, {"c",33 }, {"d",44 }, {"e",55 }, {"f",66 },};foreach (var kvp in myDictionary){ // key is kvp.Key Console.WriteLine($"{kvp.Key} : {kvp.Value}");}//仅遍历值foreach (var item in myDictionary.Values){ Console.WriteLine($"value:{item}");}//通过key排序后遍历key valueforeach (var kvp in myDictionary.OrderBy(kvp => kvp.Key)){ // key is kvp.Key Console.WriteLine($"{kvp.Key} : {kvp.Value}");}//通过key排序后遍历valueforeach (var item in myDictionary.OrderBy(kvp => kvp.Key).Select(kvp => kvp.Value)){ Console.WriteLine($"value:{item}");}
3、var (key, value)方式将对象解构(deconstruct)成变量实现
从C#7.0开始,可以将对象解构为变量。这是迭代字典的很好的方法。
1) 创建一个KeyValuePair
public static void Deconstruct(this KeyValuePair pair, out TKey key, out TVal value){ key = pair.Key; value = pair.Value;}
注意:此扩展方法要在非泛型静态中定义。
2) Dictionary
// Dictionary可以是任何类型,只使用'int'和'string'作为例子。Dictionarydict = new Dictionary ();// Deconstructor gets called here.foreach (var (key, value) in dict){ Console.WriteLine($"{key} : {value}");}