【发布时间】:2017-02-20 01:06:21
【问题描述】:
大家好,
我有一个Dictionary<String, String[])>,带有一个键 => 值示例,如下所示:
{ "Eten/drinken", new string[] { "canteen", "mcdonald's", "mimi" } }
我需要将字符串 part 与 Dictionary 的值之一进行比较:
if (categories.Any(x => x.Value.Contains(part))) {
category = categories.FirstOrDefault(x => x.Value.Contains(part)).Key;
}
在一种情况下part = "mcdonald's veghel veghel",这使得与字典值的比较返回false。
为什么是假的? "mcdonald's veghel veghel" 确实包含 mcdonald's 并且零空间比较确实按照应有的方式进行。
【问题讨论】:
-
因为它们都不包含
"mcdonald's veghel veghel"子字符串。 -
为什么是假的? -- 好吧,你将
"mcdonald's veghel veghel"与{ "canteen", "mcdonald's", "mimi" }进行了比较。如果您想比较该值是否包含来自part变量的任何单词,您需要将您的"mcdonald's veghel veghel"拆分为{"mcdonald's", "veghel"},然后检查它们是否都存在于字典的数组中。.. -
有趣的是,这实际上是我以前在我的代码中所做的,但认为它太狡猾了。不过,谢谢你让我明白了!
标签: c# arrays linq dictionary