c# Dictionary反射遍历所有
时间: 2023-12-20 21:58:53 浏览: 165
你可以使用反射来遍历C#中的Dictionary。下面是一个示例代码:
```csharp
using System;
using System.Collections.Generic;
using System.Reflection;
class Program
{
static void Main()
{
var dict = new Dictionary<string, int>()
{
{ "one", 1 },
{ "two", 2 },
{ "three", 3 }
};
foreach (KeyValuePair<string, int> kvp in dict)
{
Console.WriteLine($"{kvp.Key} - {kvp.Value}");
}
Console.WriteLine();
BindingFlags flags = BindingFlags.Instance | BindingFlags.Public;
PropertyInfo[] properties = typeof(Dictionary<string, int>).GetProperties(flags);
foreach (PropertyInfo property in properties)
{
if (property.PropertyType == typeof(int))
{
foreach (KeyValuePair<string, int> kvp in dict)
{
Console.WriteLine($"{property.Name}: {kvp.Key} - {property.GetValue(kvp.Value)}");
}
}
}
}
}
```
该示例创建了一个包含三个键值对的Dictionary,并使用foreach循环遍历了它。然后,它使用反射来获取Dictionary的所有公共实例属性,并在内部循环中使用GetValue方法来获取每个键值对的属性值。每个属性和其对应的键值对都被输出到控制台。
阅读全文