Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if dictionary contains substring?

Say I have two dictionaries with the following key value pairs:

1, "Hello"
2, "Example"

And another dictionary as follows:

1, "HelloWorld"
2, "Example2"

I want to find out if these dictionaries contain the substring "hello" within them.
dictionary.ContainsValue("Hello") will work for the first example but not the second one. How can I check for existence of a substring in all values in a dictionary?

like image 237
john cs Avatar asked Mar 16 '13 04:03

john cs


2 Answers

Just use Any to to check for the first Value that contains "Hello"

dictionary.Any(kvp=>kvp.Value.Contains("Hello"))
like image 139
juharr Avatar answered Sep 28 '22 08:09

juharr


Dictionary doesn't allow to search for substrings. To find it, you need to enumerate all values and check each for substring, as suggested by juharr. However, this method is highly inefficient. Use it only if you don't care about search performance at all.
If you need good performance, use suffix array algorithm. https://en.wikipedia.org/wiki/Suffix_array

like image 44
user626528 Avatar answered Sep 28 '22 08:09

user626528