假设我有两个带有以下键值对的词典:
1, "Hello"
2, "Example"
另一本词典如下:
1, "HelloWorld"
2, "Example2"
我想知道这些词典中是否包含子字符串“hello”。
dictionary.ContainsValue("Hello")
将适用于第一个示例,但不适用于第二个示例。如何检查字典中所有值中是否存在子字符串?
答案 0 :(得分:9)
只需使用Any
来检查包含“Hello”的第一个值
dictionary.Any(kvp=>kvp.Value.Contains("Hello"))
答案 1 :(得分:0)
dictionary.Values.Any(v => v.Contains("Hello"));
Dictionary本身不是IEnumerable,因此它不会将LINQ扩展应用于它。
答案 2 :(得分:0)
字典不允许搜索子字符串。要找到它,您需要枚举所有值并检查每个值以查找子字符串,如juharr所建议的那样。但是,这种方法效率很低。只有在您根本不关心搜索性能时才使用它 如果需要良好的性能,请使用后缀数组算法。 https://en.wikipedia.org/wiki/Suffix_array