c# Dictionary反射遍历所有keys, values
时间: 2024-05-07 07:22:23 浏览: 212
使用反射来遍历 C# Dictionary 的键和值可以使用以下代码:
```csharp
using System.Reflection;
Dictionary<string, string> dict = new Dictionary<string, string>();
// ...添加一些键值对到字典中...
// 获取键和值的类型
Type keyType = dict.Keys.GetType().GetGenericArguments()[0];
Type valueType = dict.Values.GetType().GetGenericArguments()[0];
// 获取键和值的列表
var keys = dict.Keys.ToList();
var values = dict.Values.ToList();
// 遍历键和值
for (int i = 0; i < dict.Count; i++)
{
// 获取键和值
var key = keys[i];
var value = values[i];
// 使用反射获取键和值的属性或字段
var keyPropertyOrField = keyType.GetProperty("Item", new[] { keyType });
var valuePropertyOrField = valueType.GetProperty("Item", new[] { valueType });
// 获取键和值的属性或字段值
var keyValue = keyPropertyOrField.GetValue(key, new[] { key });
var valueValue = valuePropertyOrField.GetValue(value, new[] { value });
// 输出键和值
Console.WriteLine($"Key: {keyValue}, Value: {valueValue}");
}
```
这里使用反射来获取键和值的类型,然后使用 `Keys.ToList()` 和 `Values.ToList()` 方法来获取键和值的列表。接着使用一个 for 循环来遍历键和值,使用反射来获取键和值的属性或字段,并输出它们的值。
阅读全文