Мне сложно найти то, что, я думаю, должно быть довольно простым методом.
Я думаю, мы все это использовали:
select someThing from someTable where someColumn in('item1', 'item2')
В С# мне приходится писать такие вещи:
if (someEnum == someEnum.Enum1 || someEnum == someEnum.Enum2 ||
someEnum == someEnum.Enum3)
{
this.DoSomething();
}
Это работает, но это просто многословие.
Из-за разочарования я написал метод расширения, чтобы выполнить то, что я пытаюсь сделать.
namespace System
{
public static class SystemExtensions
{
public static bool In<T>(this T needle, params T[] haystack)
{
return haystack.Contains(needle);
}
}
}
Теперь я могу написать более короткий код:
if (someEnum.In(someEnum.Enum1, someEnum.Enum2, someEnum.Enum3))
this.DoSomething();
if (someInt.In(CONSTANT1, CONSTANT2))
this.DoSomethingElse();
Мне кажется, что грязно, чтобы написать мой собственный метод для чего-то, чего я просто не могу найти в рамках.
Любая помощь, которую вы можете предложить, будет отличной, Благодаря
EDIT: Спасибо всем за глубокий аналсис. Я думаю, что продолжу использовать метод In().