С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/34: Рейтинг темы: голосов - 34, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 35
1
.NET 4.x

Аналог оператора 'in' в других языках

23.04.2016, 13:55. Показов 6479. Ответов 5

Author24 — интернет-сервис помощи студентам
Господа небольшой вопрос, в шарпе есть contains, который в принципе является аналогом in, но contains это метод, его нельзя вызывать без объявления класса, который его поддерживает.

Грубо говоря в делфе можно написать что-то такое:
Delphi
1
2
3
int a=0;
if a in {1,2,3,4} then
....
На делфе давно не работал поэтому синтаксис кривой, но как-бы, множество к которому применяется in объявляется внутри if, есть ли какой-нибудь аналог на шарпе?
или мне нужно работать через подобную дичь?
C#
1
2
3
4
 private bool contains (int[] input_array, int value_cont)
        {
            return input_array.Contains(value_cont);
        }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2016, 13:55
Ответы с готовыми решениями:

Метод Contains аналог оператору 'in' в других языках программирования
Не могу никак найти решение проблемы. В других языках программирования есть оператор вхождения in....

Использование dll в других языках
Добрый вечер. Ситуация такая, у меня есть dll(библиотека классов) написанная на C#. Смогу ли я...

Выполнение в c# скриптов, написанных на других языках
Доброго времени суток! У меня такой вопрос: предположим, есть строка (string) с кодом, например,...

Аналог оператора Like (Visual Basic) для C#
есть код, который выводит названия всех файлов в папке на listbox. нужно, чтобы в listbox попадали...

5
26 / 26 / 14
Регистрация: 09.06.2014
Сообщений: 162
23.04.2016, 14:05 2
Этот метод есть у любого перечисляемого типа.
C#
1
2
3
4
5
6
            List<int> listOfInt = new List<int>();
 
            listOfInt.AddRange(new int[]{ 1, 2, 3, 4, 5});
 
            if (listOfInt.Contains(3))
                Console.WriteLine("Contains");
1
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 35
23.04.2016, 14:11  [ТС] 3
Да я в курсе, dictionary, list нумераблы, ну и т.д.

у меня вышло нечто подобное:
C#
1
return (new int[] { 1, 2, 3, 4 }.Contains(Word_ID));
Я просто думал, мб от new можно как-нибудь избавится, а то громоздко, много букаф занимает XD
0
26 / 26 / 14
Регистрация: 09.06.2014
Сообщений: 162
23.04.2016, 14:16 4
Лучший ответ Сообщение было отмечено DonRumata как решение

Решение

А вам обязательно это в методе реализовывать? new новый объект создаёт, если у вас нет объекта со значениями то обязательно.
1
Эксперт .NET
17792 / 12943 / 3381
Регистрация: 17.09.2011
Сообщений: 21,226
24.04.2016, 11:34 5
Лучший ответ Сообщение было отмечено DonRumata как решение

Решение

Цитата Сообщение от DonRumata Посмотреть сообщение
есть ли какой-нибудь аналог на шарпе?
"Из коробки" нет, но можете сделать сами:
C#
1
2
3
4
5
6
7
static class Extensions
{
    public static bool In<T>(this T value, params T[] options)
    {
        return options.Contains(value);
    }
}
Использование:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if (1.In(2, 3, 5, 1, 10, 12))
{
   ...
}
 
if (DateTime.Today.In(new DateTime(2016, 04, 24), DateTime.MinValue, DateTime.MaxValue))
{
   ...
}
 
if ("hello".In("world", "text", "blabla"))
{
   ...
}
 
double a = 3.14;
if (a.In(0, 3.14, 12, 13, 14, 15))
{
   ...
}
 
// И так далее
2
0 / 0 / 0
Регистрация: 25.02.2016
Сообщений: 35
24.04.2016, 11:36  [ТС] 6
Да да, спасибо большое, уже понял, разобрался написал свое )
0
24.04.2016, 11:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2016, 11:36
Помогаю со студенческими работами здесь

Запись оператора return в других версиях Visual Studio
Здравствуйте,у меня имеется оператор return,который записал на Visual Studio 2013 return...

Работа с сопрограммами и подпрограммами на других языках
Подскажите есть ли в стандартах std или иные кросплатформенные методы работы с сопрограммами и...

Наследование в CSS, как в других языках программирования
Здравствуйте! Я только начинаю изучать HTML и CSS, хотя, с программированием уже знаком на...

Подключение библиотеки, написанной на VS в других языках программирования
Существует ли возможность написать на VS такую dll - библиотеку, которую можно было бы использовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru