如何将此类型转换为字典?

时间:2012-02-08 22:55:59

标签: c# casting

我有以下代码。它使用某人构建的类来管理称为plist的特定文件类型。我试图把它吐出的东西拿出来放在字典中。

Dictionary<string, IPropertyListDictionary> maindict = new Dictionary<string, IPropertyListDictionary>();
maindict = data["section0"].DictionaryItems;

问题是我在“DictionaryItems”下面出了一个红线,出现以下错误:

Cannot implicitly convert type
 'System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<string,CodeTitans.Core.Generics.IPropertyListItem>>' 
to
 'System.Collections.Generic.Dictionary<string,CodeTitans.Core.Generics.IPropertyListDictionary>'. 
An explicit conversion exists (are you missing a cast?)

任何人都可以帮我正确地投这个吗?感谢。

2 个答案:

答案 0 :(得分:4)

尝试使用此

Dictionary<string, IPropertyListDictionary> maindict = (data["section0"].DictionaryItems).ToDictionary(x => x.Key, x => x.Value);

答案 1 :(得分:-2)

你不能强制转换它,但你可以通过在Linq中编写自己的循环或使用ToDictionary()扩展方法来转换它。

using System.Collections.Generic;
using System.Linq;

// ...
Dictionary<string, IPropertyListDictionary> mainDictionary = data["section0"].DictionaryItems.ToDictionary();