Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Аналог in в Паскале


Автор: avm2 2.1.2012, 17:43
Всех с Новым годом!
Подскажите есть ли в C# аналог выражения в Паскале типа

Код

if (var in [0, 1])


То есть встречается ли значение в списке/массиве?

Автор: Voyager 2.1.2012, 18:09
Нет. Есть вариант использовать метод Contains класса  List<T>.

Код

int[] arr = new int[] {0, 1}; 
List<int> list = new List<int>(arr);
if (list.Contains(var))
{
}

Автор: avm2 2.1.2012, 19:02
Спасибо, это я знаю. А чтоб без объявления переменных, в одну строку if ...

Автор: xRaux 2.1.2012, 19:52
Чтоб в одну строчку - писать свой метод. И имхо, лучше использовать foreach, чтоб не создавать временный List<int>

Автор: Экскалупатор 2.1.2012, 20:21
если сильно хочется то можно так:
Код

if (new int[] { 1, 2, 3, 4, 5, 6, 9, 0 }.Count(x => x == 1) > 0)

Автор: Voyager 2.1.2012, 21:11
xRaux всё верно сказал.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)