С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/64: Рейтинг темы: голосов - 64, средняя оценка - 4.95
3 / 4 / 1
Регистрация: 27.02.2016
Сообщений: 304
1

Сравнить переменную с массивом

10.12.2016, 18:13. Показов 12447. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно в условии сравнить переменную со всеми элементами массива. Лучше делать это без цикла.
У меня ничего не получилось
C#
1
2
3
4
5
6
7
for(int a=0; a<arr.Length; a++)
{
else if (per == arr[a])
{
...
}
}
Выбивает ошибку, да я и сам понимаю, что делаю не правильно. Пожалуйста подскажите
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2016, 18:13
Ответы с готовыми решениями:

Foreach с массивом: сравнить полученные значения с ожидаемыми
Здравствуйте. Есть код. Примерно такой: объявляется массив переменных float array = {1, 2, 3,...

Сравнить переменную с элементами массива
string sh = ss1.Split('/'); Есть некий массив и есть переменная. Содержимое которой нужно...

switch сравнить переменную с отрезком чисел
switch (a) { case 1..10://сравниваем, и если от 3 до 10, то действие case 11..111:// ...

Обычную переменную заменить массивом или списком и реализовать события
Есть программа, в ней кроме самого тела Main имеется 2 класа: 1) нужно сделать так, чтобы из...

12
3564 / 2505 / 1174
Регистрация: 14.08.2016
Сообщений: 8,214
10.12.2016, 18:16 2
else убери
а что подразумевается под "Лучше делать это без цикла. " относительно массива, я чет не очень понял
0
4 / 4 / 7
Регистрация: 22.10.2016
Сообщений: 13
10.12.2016, 18:21 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    class Program
    {
        static void Main(string[] args)
        {
            int per = int.Parse(Console.ReadLine());
            int[] ar = new int[] { 1,2,3,45,6,7};
            for (int i = 0; i < ar.Length; i++)
            {
                if (per == ar[i])
                    Console.WriteLine("Элемент массива равен переменной");
                else if (per > ar[i])
                    Console.WriteLine("Элемент массива меньше переменной");
 
                else Console.WriteLine("Элемент массива  больше переменной");
            }
            Console.Read();
        }
    }
0
3 / 4 / 1
Регистрация: 27.02.2016
Сообщений: 304
10.12.2016, 18:22  [ТС] 4
У меня идут несколько условий и else убрать нельзя.
C#
1
2
3
4
5
6
if ()
...
else if ()
...
else if ()
...
Или не так?
0
3564 / 2505 / 1174
Регистрация: 14.08.2016
Сообщений: 8,214
10.12.2016, 18:27 5
ну в первом посте, в том виде как он есть, это ошибка, а сколько у тебя if знают только телепаты, но они сейчас, к сожалению, в отпуске
ну так а ошибка то что говорит?
0
3 / 4 / 1
Регистрация: 27.02.2016
Сообщений: 304
10.12.2016, 18:46  [ТС] 6
А с case циклом уже не сделаешь. Есть другие способы сравнения?
0
Эксперт .NET
6510 / 4086 / 1606
Регистрация: 09.05.2015
Сообщений: 9,553
10.12.2016, 21:09 7
Цитата Сообщение от Vadim14 Посмотреть сообщение
А с case циклом уже не сделаешь.
Это почему же?
0
3 / 4 / 1
Регистрация: 27.02.2016
Сообщений: 304
10.12.2016, 23:18  [ТС] 8
else if у меня довольно много (около 10)
0
132 / 82 / 29
Регистрация: 01.10.2014
Сообщений: 263
10.12.2016, 23:23 9
Vadim14, то есть вы на каждый элемент массива написали сравнение?
0
3 / 4 / 1
Регистрация: 27.02.2016
Сообщений: 304
10.12.2016, 23:34  [ТС] 10
Нет. У меня переменная сравнивается со строками. А в 10 else if понадобилось сравнить переменную с элементами массива.
0
64 / 68 / 18
Регистрация: 21.10.2015
Сообщений: 228
11.12.2016, 01:14 11
C#
1
2
3
4
5
6
7
8
9
10
11
int[] vv = new int[] { 1,2,3,4,5,7,8 };
int v = 4;
 
foreach(int i in vv)
{
   if(i == v)
   {
        Console.WriteLine("в мосиве найдена такая же переменная. {0} == {1}", i, v);
        break;
   }
}
если есть необходимость вывести все переменные с таким же значением - убрать break.
0
30 / 30 / 20
Регистрация: 28.02.2014
Сообщений: 195
11.12.2016, 03:01 12
Vadim14, наверно тебе такой вариант не подойдет, но все же.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System.Linq;
 
....
 
            int[] mass = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
 
            if (mass.Contains(40))
            {
                Console.WriteLine("Найден");
            }
            else
            {
                Console.WriteLine("Не найден");
            }
Если что, гугли "LINQ с#"

Добавлено через 8 минут
это если речь идет о проверке на вхождения в массив конкретного значения. Если тебе нужно найти индекс этого значения погляди:
Получение индекса элемента массива + linq
этот вариант сложней. ну раз "Лучше делать это без цикла. ", тут тебе не нужно самому перебирать элементы.
0
.NET senior
441 / 359 / 137
Регистрация: 23.09.2016
Сообщений: 980
11.12.2016, 09:36 13
Fantom2209, а можно и без Linq: Array.IndexOf
1
11.12.2016, 09:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2016, 09:36
Помогаю со студенческими работами здесь

Сравнить область изображения с массивом изображений
Здравствуйте. Помогите реализовать. 1. Нужно создать масив bitmap ов из ~100 фалов изображений....

Сравнить текст из textbox'a с массивом строк в listbox'e
В общем ситуация такая:) есть алгоритм непрямого сравнения, теперь нужно сделать сравнить текст из...

Сравнить textBox и переменную
Как сравнить текст в textBox с текстом сохраненный в переменной???

Сравнить переменную со значением numericupdown
Здравствуйте, мне нужно чтобы, когда пользователь в nud вводил число 7 выполнялось действие. А если...

Сравнить input с массивом объектов
пожалуйста помогите, туплю конкретно. У меня есть массив объектов в котором хранятся логины и...

Как сравнить case у switch с чаровским массивом?
мне надо написать удобное консольное меню. Как я хочу єєто сделать: Создать массив строк. Каждая...


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

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