将字典参数类型转换为对象

时间:2020-08-24 15:19:35

标签: c# .net

我有打包到对象的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];
        }

1 个答案:

答案 0 :(得分:2)

您可以像这样使用ToDictionary函数:

var dic = new Dictionary<string, object>() {
            { "a", "test1" },
            { "b", "test2" },
        };

var dictionary = dic.ToDictionary(e => (object) e.Key, e.Value);

请记住,就性能而言,它与您的解决方案几乎相同,外观更优雅。