c# Dictionary反射遍历
时间: 2023-10-13 12:15:57 浏览: 113
c# 遍历 Dictionary的四种方式
可以使用反射来遍历C#中的Dictionary。下面是一个例子:
```csharp
using System;
using System.Collections.Generic;
using System.Reflection;
class Program
{
static void Main(string[] args)
{
Dictionary<string, int> dict = new Dictionary<string, int>();
dict.Add("one", 1);
dict.Add("two", 2);
dict.Add("three", 3);
Type dictionaryType = dict.GetType();
MethodInfo getEnumeratorMethod = dictionaryType.GetMethod("GetEnumerator");
IEnumerator<KeyValuePair<string, int>> enumerator = (IEnumerator<KeyValuePair<string, int>>)getEnumeratorMethod.Invoke(dict, null);
while (enumerator.MoveNext())
{
KeyValuePair<string, int> pair = enumerator.Current;
Console.WriteLine(pair.Key + ": " + pair.Value);
}
}
}
```
这里使用了`GetType()`方法获取字典的类型,然后使用`GetMethod()`方法获取`GetEnumerator()`方法的信息。接下来,使用`Invoke()`方法调用`GetEnumerator()`方法,并将其转换为`IEnumerator<KeyValuePair<string, int>>`类型。最后,使用`MoveNext()`方法遍历字典中的键值对,并输出它们的值。
阅读全文