6

次のキーと値のペアを持つ 2 つの辞書があるとします。

1, "Hello"
2, "Example"

そして、次のような別の辞書:

1, "HelloWorld"
2, "Example2"

これらの辞書に部分文字列「hello」が含まれているかどうかを調べたいと思います。
dictionary.ContainsValue("Hello")最初の例では機能しますが、2 番目の例では機能しません。辞書内のすべての値に部分文字列が存在することを確認するにはどうすればよいですか?

4

3 に答える 3

13

Any「Hello」を含む最初の値を確認するために使用するだけです

dictionary.Any(kvp=>kvp.Value.Contains("Hello"))
于 2013-03-16T04:07:22.243 に答える
1

辞書では部分文字列の検索が許可されていません。それを見つけるには、juharr の提案に従って、すべての値を列挙し、それぞれの部分文字列をチェックする必要があります。ただし、この方法は非常に非効率的です。検索パフォーマンスをまったく気にしない場合にのみ使用してください。
優れたパフォーマンスが必要な場合は、接尾辞配列アルゴリズムを使用してください。https://en.wikipedia.org/wiki/Suffix_array

于 2013-03-16T04:24:31.513 に答える
0
dictionary.Values.Any(v => v.Contains("Hello"));

Dictionary 自体は IEnumerable ではないため、LINQ 拡張機能は適用されません。

于 2013-03-16T04:08:13.150 に答える