首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字典ContainsKey方法

字典ContainsKey方法
EN

Stack Overflow用户
提问于 2012-04-06 03:49:45
回答 2查看 334关注 0票数 1

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

代码语言:javascript
复制
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是infoDict.Keys上的Dictionary<String, BString> Contains,用于查找特定项目(类型为BString),但第4行失败...没有sens

我不习惯使用c#..那么我必须重写哪些方法(现在我有: GetHashCode,==,!= & equals)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-06 03:54:50

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

不清楚为什么要从infoDict的键创建一个列表,而不是仅仅调用ContainsKey,或者(更好的)使用TryGetValue开始。此外,我建议您的类型名称不要使用"B“前缀。

票数 2
EN

Stack Overflow用户

发布于 2012-04-06 03:56:38

您不需要将Keys复制到新的列表中来执行查找。实际上,您可以检查该键是否存在于字典中,并使用TryGetValue方法在单个操作中检索其关联值:

代码语言:javascript
复制
BList bList;
if (dict.TryGetValue(TorrentFileKeyWords.FILES_KEY, out bList))
{
    List<BaseType> multiFiles = bList.Value;
    // use multiFiles here
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10035048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档