c# 类型为Dictionary的object对象反射遍历key,value
时间: 2024-05-16 09:17:01
浏览: 197
假设你有一个类型为`[dictionary](https://wenku.csdn.net/doc/5rv16b2mbn?spm=1055.2569.3001.10083)<[string](https://wenku.csdn.net/doc/645cade695996c03ac3eb2ce?spm=1055.2569.3001.10083), [object](https://wenku.csdn.net/doc/645cd5f595996c03ac3f869a?spm=1055.2569.3001.10083)>`的变量`dict`,你可以通过以下方式使用反射遍历它的key和value:
```csharp
// 获取字典类型
Type dictType = dict.GetType();
// 获取Key和Value的类型
Type keyType = dictType.GetGeneric[arguments](https://wenku.csdn.net/doc/6412b578be7fbd1778d43456?spm=1055.2569.3001.10083)()[0];
Type valueType = dictType.GetGenericArguments()[1];
// 获取字典的Keys和Values属性
PropertyInfo keysProp = dictType.GetProperty("Keys");
PropertyInfo valuesProp = dictType.GetProperty("Values");
// 获取Keys和Values
IEnumerable keys = (IEnumerable)keysProp.GetValue(dict);
IEnumerable values = (IEnumerable)valuesProp.GetValue(dict);
// 遍历Keys和Values
foreach (object key in keys)
object value = values.Cast<object>().[element](https://wenku.csdn.net/doc/z7c28mgs2i?spm=1055.2569.3001.10083)At(keys.Cast<object>().ToList().IndexOf(key));
Console.WriteLine("{0} : {1}", k
```
最低
0.47元/天
开通会员,查看完整答案
成为会员后, 你将解锁
下载资源随意下
优质VIP博文免费学
优质文库回答免费看
C知道免费提问
付费资源9折优惠