请解释为什么字典的'getAt'方法失败

List<BString> infoKeys = new List<BString>(infoDict.Keys);
if (infoKeys.Contains(TorrentFileKeyWords.FILES_KEY) == true) //"files"
{
        List<BaseType> multiFiles = ((BList)dict[TorrentFileKeyWords.FILES_KEY]).Value; <<< this fails


所以infoDict是Dictionary<String, BString>
infoDict.Keys上包含的内容用于查找特定项目(类型为BString)
但是第4行失败了...没有感觉

我不使用c#..所以我必须重写什么方法(现在我有:GetHashCode,==,!=和等于)

最佳答案

我怀疑问题是您在一个地方使用infoDict,而在另一个地方使用dict

目前尚不清楚为什么要使用infoDict键创建列表,而不是仅调用ContainsKey,还是(最好)使用TryGetValue开始。另外,我建议不要在类型名称中使用“ B”前缀。

10-05 23:38