2013-05-20 168 views
-4

我有一個List被定義爲:檢查List <Dictionary <string,object >>中是否存在Dictonary <string,object>?

List<Dictionary<string,object>>() 

Listforeach loop被填充,基本上包含ProperyInfoproperty names and values

在另一個foreach loop,我想再次遍歷屬性,並檢查是否有一個包含與我正在查找的值對應的鍵的字典。例如:

foreach(var item in controls) 
{ 
    if(item !=null && list.Contains(...)) //What do I put in here 
    { 

    } 
    else 
    { 

    } 

} 

controlsList<Control>其中Control是類具有一個屬性Nameitem是指一個Control

我想過要做list.Contains(item.Name),但這顯然不起作用。

+3

所以,你要知道,如果給定的關鍵是在任何的字典的清單?或者你有另一個'Dictionary',需要知道它是否與列表中的字典具有完全相同的一組keyvalpairs,或者是什麼?甚至沒有顯示「物品」的類型,這使得它更難以提供幫助。 – Servy

+0

你可以有一個'Dictionary >'而不是'List'。 –

+0

@AndreCalil或者只有一個'Dictionary ',裏面有大量的對象...畢竟,它是*設計的*來擴展到真正的大尺寸。 – Servy

回答

2

要了解鑰匙存在,你有,你可以做到這一點的字典中的任何

if(list.Any(dic => dic.ContainsKey(item.Name))) 
+0

+1爲* SO問答諮詢服務*,我想。 –

+1

@AndreCalil是的。當我發佈我的第一條評論時,我99%肯定這是答案,但我想我會利用教學時間來幫助OP瞭解如何提問。另外,如果這個數字在1%以內,並且不是這麼簡單,那麼嘗試解決這個問題可能是一個有趣的問題。 – Servy

+0

@Servy - 有時當我們不明白問題時,很難將正確的問題放在一起。 – Xaisoft

0

您使用對字典的引用。字典是一種引用類型,因此列表將通過傳遞的引用來檢查字典是否包含在其中。

+0

他在問如何做某事,而不是當他在'List >'上調用'Contains'時會發生什麼。但是,由於問題含糊不清,他所要求的怎麼做還不是很清楚。 – Servy

+1

但問題是如何檢索字典的參考。如果他擁有它,他不需要重複列表。 –

+0

如果他要使用「Contains」,他必須擁有它。 – Renan

相關問題