Задача: проверить, соответствует ли x ∉ { 2, 3, 61, 71
Я часто задавался вопросом, нет ли лучшего способа, чем:
Код: Выделить всё
if (x != 2 && x != 3 && x != 61 && x != 71)
{
// do things
}
и
Код: Выделить всё
if (!new List{ 2, 3, 61, 71 }.Contains(x))
{
// do things
}
Последнее кажется довольно элегантным, но на самом деле оно немного раздражает, если его читать, особенно из-за инверсии. Это довольно неприятная вещь, потому что по-английски мы говорим "x не является элементом ...", что трудно выразить на C# без раздражающих накладных расходов. Может быть, можно сказать if (Object(x).IsElementOf(new[] { ... })) или около того?
Есть предложения? Существуют ли какие-либо стандартные методы .Net для такого тестирования?
Подробнее здесь:
https://stackoverflow.com/questions/822 ... -given-set