簡體   English   中英

字典 ContainsKey 方法

[英]dictionary ContainsKey method

請解釋為什么字典的“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> Contains on infoDict.Keys 用於查找特定項目(BString 類型)但是第 4 行失敗......沒有感覺

我沒有使用 c#.. 所以我必須覆蓋哪些方法(現在我有:GetHashCode、==、!= & equals)

您不需要將Keys復制到新列表即可執行查找。 事實上,您可以使用TryGetValue方法檢查鍵是否存在於字典中在單個操作中檢索其關聯值:

BList bList;
if (dict.TryGetValue(TorrentFileKeyWords.FILES_KEY, out bList))
{
    List<BaseType> multiFiles = bList.Value;
    // use multiFiles here
}

我懷疑問題是你在一個地方使用infoDict ,而在另一個地方使用dict ...

目前尚不清楚為什么要從infoDict的鍵創建列表,而不是僅僅調用ContainsKey或(更好)使用TryGetValue開始。 此外,我建議不要為您的類型名稱添加“B”前綴。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM