大家好,
我有一个 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/