Как проверить, существует ли значение в массиве, используя язык шаблонов Velocity

Я не уверен, как я мог бы добиться следующего, используя язык шаблонов Velocity.

По сути, я хотел бы проверить, существует ли данное значение из данного списка/массива. В C# это эквивалентно методу .Any() или .Contains().

#set($myValues = ["apple", "banana", "strawberry"])
#foreach($i in $items)
    $myValues.any($i) <= better way to achieve this??
    or something like this
    $myValues.contains($i)
#end

Конечно, я мог бы просто использовать несколько условий if...else... и пройтись по списку, чтобы проверить существование определенного значения, но код очень быстро становится беспорядочным (если список поиска огромен). Есть ли лучший способ сделать это?


person woodykiddy    schedule 22.08.2019    source источник
comment
$myValues.contains($i) должно работать нормально, так как скорость может интерпретировать такие вызовы методов, если они являются java   -  person XtremeBaumer    schedule 22.08.2019


Ответы (1)


$myValues.contains($i)

or

$list.contains($myValues, $i)

(этот устарел, так как первый был представлен в Velocity 1.6)

person Andrew Tobilko    schedule 22.08.2019
comment
Спасибо, Эндрю. Будет ли это чувствительно к регистру? - person woodykiddy; 22.08.2019
comment
@woodykiddy да, "A" и "a" не совпадают в Java, если вы используете String равные (которые будут использоваться List#contains) - person Andrew Tobilko; 22.08.2019