繁体   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