检查数组是否包含D中的元素

时间:2014-06-02 12:01:32

标签: arrays d

对于关联数组我们可以写

if( elem in array) { .. }

我们为一个简单的数组写了什么? 我想写验证,例如。

enforce(input in [10,20,40]);

2 个答案:

答案 0 :(得分:19)

in遗憾地对数组不起作用。您必须使用canFind http://dlang.org/phobos/std_algorithm.html中定义的searchstd.algorithm。由于您只想知道它是否存在,而不是它的位置,canFind是正确的工具。

import std.algorithm: canFind;

if (my_array.canFind(42)) { stuff }

答案 1 :(得分:4)

除了canFind之外,还有countUntil,它将为您提供第一次出现的索引。

请注意D"" in"关键字搜索关联数组的键而不是其值:

string[string] array = [
    "foo" : "bar"
];

writeln(("foo" in array) != null); // true
writeln(("bar" in array) != null); // false