Задача: проверить, если x ∉ {2, 3, 61, 71}
Я часто задавался вопросом, нет ли лучшего способа, чем:
if (x != 2 && x != 3 && x != 61 && x != 71)
{
// do things
}
и
if (!new List<int>{ 2, 3, 61, 71 }.Contains(x))
{
// do things
}
Последний кажется довольно элегантным, но на самом деле это раздражает, если вы его читаете, особенно из-за инверсии. Это своего рода уродливая вещь, потому что на английском языке мы говорим: "x не является элементом...", который трудно выразить на С# без раздражающих накладных расходов. Может быть, один coud скажет if (Object(x).IsElementOf(new[] { ... }))
или так?
Хм.. любые предложения? Существуют ли какие-либо стандартные методы .NET для проверки таких вещей?