检查字典是否包含子字符串?

时间:2013-03-16 04:04:38

标签: c# string dictionary string-parsing

假设我有两个带有以下键值对的词典:

1, "Hello"
2, "Example"

另一本词典如下:

1, "HelloWorld"
2, "Example2"

我想知道这些词典中是否包含子字符串“hello”。
dictionary.ContainsValue("Hello")将适用于第一个示例,但不适用于第二个示例。如何检查字典中所有值中是否存在子字符串?

3 个答案:

答案 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