我有打包到对象的Dictionary
var dic = new Dictionary<string, object>() {
{ "a", "test1" },
{ "b", "test2" },
};
object obj = dic;
在真实代码中,我有一个采用Object obj的方法,所以我不知道真实类型。 现在我需要将该对象转换为Dictionary
var dic = new Dictionary<string, object>() {
{ "a", "test1" },
{ "b", "test2" },
};
object obj = dic;
var source = obj as IDictionary;
var dictionary = new Dictionary<object, object>();
foreach (var key in source.Keys)
{
dictionary[key] = source[key];
}
答案 0 :(得分:2)
您可以像这样使用ToDictionary
函数:
var dic = new Dictionary<string, object>() {
{ "a", "test1" },
{ "b", "test2" },
};
var dictionary = dic.ToDictionary(e => (object) e.Key, e.Value);
请记住,就性能而言,它与您的解决方案几乎相同,外观更优雅。