如何验证字典列表是否包含具有特定键的字典 - C#

Egg*_*ker 1 c# dictionary

我有一个词典列表:

List<Dictionary<string, int>> listDic = new List<Dictionary<string, int>>();
Run Code Online (Sandbox Code Playgroud)

例如,如何验证listDic是否包含带键=="apple"的词典?

Dav*_*vid 11

您可以.Any在外部字典和.ContainsKey内部字典上使用.像这样的东西:

var containsApple = listDic.Any(x => x.ContainsKey("Apple"));
Run Code Online (Sandbox Code Playgroud)

true如果任何一个或多个字典listDic包含密钥,则应该导致这种情况"Apple".

基本上你从你的整体问题开始:

如何验证listDic是否包含带键的字典=="apple"

并将其分解为两个更小,更简单,易于查找的Google问题:

  1. 如何验证字典是否包含给定密钥?
  2. 如何验证集合中的任何一个或多个元素是否满足条件?

第一个涉及调用.ContainsKey字典,第二个涉及调用.Any集合.在那之后,你只需将两者结合起来.


Loe*_*etn 6

如果可以使用linq,可以使用以下方法执行此操作.Any():

bool containsKey = listDic.Any(x => x.ContainsKey("apple"));
Run Code Online (Sandbox Code Playgroud)

这将逐个检查集合,直到找到密钥.如果在第二个项目上找到该键,则.Any()仅迭代两个项目而不是整个集合.