我試圖刪除與條件匹配的IDictionary對象中的所有元素。刪除所有與IDictionary中的條件匹配的項目
E.g. IDictionary包含一組鍵和相應的值(比方說80個對象)。鍵是字符串,值可能是不同的類型(想想使用directshow從wtv文件中提取元數據)。
一些鍵包含文本「拇指」,例如, thumbsize,startthumbdate等 我想從IDictionary中刪除所有對象,它們的鍵包含單詞縮略圖。
我在這裏看到的唯一方法是使用.Remove方法手動指定每個鍵名稱。
有沒有辦法讓所有對象的鍵都包含單詞縮略圖,並將它們從IDictionary對象中移除。
的代碼看起來是這樣的:
IDictionary sourceAttrs = editor.GetAttributes();
的getAttributes被定義爲:
public abstract IDictionary GetAttributes();
我沒有過的getAttributes控制,它會返回一個IDictionary對象,我只知道的內容在調試時查看它。 (可能是一個哈希表)
更新:最終的答案感謝Tim:
sourceAttrs = sourceAttrs.Keys.Cast<string>()
.Where(key => key.IndexOf("thumb", StringComparison.CurrentCultureIgnoreCase) == -1)
.ToDictionary(key => key, key => sourceAttrs[key]);
什麼是真正的類型?如果它實際上是一個通用的ditionary,你可以簡單地施放它。您可以嘗試通過「as」運算符來投射它。例如:'var dict = sourceAttrs as Dictionary'。如果演員不工作,則它爲空。 –
不知道,看起來像一個散列表 –
rboy
請不要包含有關在問題標題中使用的語言的信息,除非它沒有它沒有意義。標籤用於此目的。 –