c# - 比较出错 c# Dictionary<String, string[]>

标签 c# arrays linq dictionary

大家好,

我有一个 Dictionary<String, String[])> , 具有如下所示的键 => 值示例:

{ "Eten/drinken", new string[] { "canteen", "mcdonald's", "mimi" } }

我需要比较一个字符串 part具有字典的值之一:

 if (categories.Any(x => x.Value.Contains(part))) {
        category = categories.FirstOrDefault(x => x.Value.Contains(part)).Key;
 } 

在一个场景中 part = "mcdonald's veghel veghel" , 这使得与 Dictionary 值的比较返回 false .

为什么是假的? "mcdonald's veghel veghel"确实包含 mcdonald's零空间比较确实按照它们应该的方式进行。

最佳答案

lambda x.Value.Contains(part) 中的表达式表示 {"canteen", "mcdonald's", "mimi"} 的任何元素包含字符串 "mcdonald's veghel veghel",为 false。您想要条件的倒数,即长字符串 part 包含列表中的任何关键字:

categories.Any(x => x.Value.Any(s => part.Contains(s)))

关于c# - 比较出错 c# Dictionary<String, string[]>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42334933/

相关文章:

javascript - JavaScript 的循环问题,将值插入数组不起作用

javascript - 将对象转换为数组返回未定义

javascript - 使用环绕在一维阵列网格中查找邻居的更优雅的方法?

c# - 当我执行 ToList() 时,为什么这个 LINQ to SQL 查询会中断?

c - 字符串大小等于字符数

c# - 改进 LINQ 查询,使其完全在数据库中执行

c# - 我应该如何获得 IEnumerable 的长度?

c# - 合并 2 个 LINQ 查询

c# - Windows Phone 7 中的 HttpUtility.UrlEncode?

c# - 在 ASP.NET Core 中不需要时如何绕过身份验证中间件