簡體   English   中英

如何驗證字典列表是否包含具有特定鍵的字典-C#

[英]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問題:

  1. 如何驗證字典包含給定的鍵?
  2. 如何驗證集合中的任何一個或多個元素滿足條件?

第一個需要調用.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.

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