array.ToString
возвращает строку "System.Int32[]"
.Использование Any
со строкой проверяет предикат для каждого символа в строке.
Предполагая, что booking.EventID
является int
, таким как 1234
, booking.EventID.ToString()
возвращаетстрока "1234"
.
Таким образом, ваш код проверяет, содержит ли "1234"
какой-либо символ в "System.Int32[]"
(здесь: true
, поскольку "1234"
содержит '3'
из "System.Int32[]"
).
Вы не говорите, каков желаемый результат, но я думаю, вы ищете что-то вроде этого:
if (array.Any(s => booking.EventID == s))
{
// ...
}
или
if (Array.IndexOf(array, booking.EventID) != -1)
{
// ...
}