[英]How verify if a List of Dictionary contains a Dictionary with specific key - C#
我有一個詞典列表:
List<Dictionary<string, int>> listDic = new List<Dictionary<string, int>>();
例如,如何驗證listDic是否包含鍵==“ apple”的Dictionary?
您可以使用.Any
對外部字典和.ContainsKey
在內的。 像這樣:
var containsApple = listDic.Any(x => x.ContainsKey("Apple"));
如果listDic
中的任何一個或多個詞典包含鍵"Apple"
則結果為true
。
本質上,您從總體問題開始:
如何驗證listDic是否包含鍵==“ apple”的字典
並將其分為兩個更小,更簡單,更容易找到的Google問題:
第一個需要調用.ContainsKey
詞典中,第二個涉及調用.Any
的集合。 之后,您只需將兩者結合即可。
如果可以使用linq
,則可以使用.Any()
:
bool containsKey = listDic.Any(x => x.ContainsKey("apple"));
這將一個接一個地檢查集合,直到找到密鑰為止。 如果在第二個項目上找到了密鑰,則.Any()
僅迭代兩個項目,而不是整個集合。
嘗試使用LINQ
bool result = listDic.Any(x => x.ContainsKey("Apple"));
bool contains = listDic.Any(x => x.ContainsKey("apple"));
List<Dictionary<string, int>> listDic = new List<Dictionary<string, int>>();
Dictionary<string, int> di = new Dictionary<string, int>();
di.Add("apple", 1);
listDic.Add(di);
di = new Dictionary<string, int>();
di.Add("mango", 2);
di = new Dictionary<string, int>();
di.Add("grapes", 3);
Dictionary<string, int> item = listDic.Where(c => c.ContainsKey("apple")).FirstOrDefault();
if (item != null)
{
string key = item.FirstOrDefault().Key;
int value = item.FirstOrDefault().Value;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.