Returns true if and only if any value v found in the input range range satisfies the predicate pred. Performs (at most) O(haystack.length) evaluations of pred.
Returns true if and only if needle can be found in range. Performs O(haystack.length) evaluations of pred.
Returns the 1-based index of the first needle found in haystack. If no needle is found, then 0 is returned.
assert(canFind([0, 1, 2, 3], 2) == true); assert(canFind([0, 1, 2, 3], [1, 2], [2, 3])); assert(canFind([0, 1, 2, 3], [1, 2], [2, 3]) == 1); assert(canFind([0, 1, 2, 3], [1, 7], [2, 3])); assert(canFind([0, 1, 2, 3], [1, 7], [2, 3]) == 2); assert(canFind([0, 1, 2, 3], 4) == false); assert(!canFind([0, 1, 2, 3], [1, 3], [2, 4])); assert(canFind([0, 1, 2, 3], [1, 3], [2, 4]) == 0);
Example using a custom predicate. Note that the needle appears as the second argument of the predicate.
auto words = [ "apple", "beeswax", "cardboard" ]; assert(!canFind(words, "bees")); assert( canFind!((string a, string b) => a.startsWith(b))(words, "bees"));
Search for mutliple items in an array of items (search for needles in an array of hay stacks)
string s1 = "aaa111aaa"; string s2 = "aaa222aaa"; string s3 = "aaa333aaa"; string s4 = "aaa444aaa"; const hay = [s1, s2, s3, s4]; assert(hay.canFind!(e => (e.canFind("111", "222"))));
std.algorithm.comparison.among for checking a value against multiple possibilities.
Convenience function. Like find, but only returns whether or not the search was successful.
For more information about pred see find.