C# не позволяют указать несколько значений для проверки переменного с использованием одного if
заявления. Вам нужно будет проверить каждое значение (1, 3, 5 и т. Д.) Отдельно, если вы хотите сделать это таким образом, и это будет много избыточного ввода.
В этом конкретном примере, простой способ проверить, если что-то нечетным или четным, чтобы проверить остаток после деления на 2, используя оператор модуля %
:
if (x % 2 == 1)
{
Console.WriteLine("The number is odd");
}
else
{
Console.WriteLine("The number is even");
}
Однако, если вам действительно нужно чтобы проверить список, тогда простой способ - использовать метод Contains
на массиве (на самом деле ICollection<T>
). Для того, чтобы сделать его легко и приятно, вы могли бы даже написать функцию расширения, которая позволяет проверить по списку в синтаксически довольно моды:
public static class ExtensionFunctions
{
public static bool In<T>(this T v, params T[] vals)
{
return vals.Contains(v);
}
}
Тогда вы могли бы сказать:
if (x.In(1,3,5,7,9,11,13,15,17,19))
{
Console.WriteLine("The number is definitely odd and in range 1..19");
}
else
{
Console.WriteLine("The number is even, or is not in the range 1..19");
}
вуаля! :)
Что привело вас поверить, что C# включен этот синтаксис? –