请解释为什么字典的'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”前缀。