 |
Поиск данных в массиве.... - Вопросы и ответы, обсуждения - Ваши вопросы по C# только в данном разделе |
18.01.2013, 21:20
|
#1
|
|
|
|
Старший сержант
|
 Регистрация: 04.02.2011
 Сообщений: 198
 Популярность: 12244
 Сказал(а) спасибо: 453
Поблагодарили 435 раз(а) в 242 сообщениях
|
Поиск данных в массиве....
Сижу туплю....
Имеем массив:
... [] New_Mass = { 33FA, D453, В442 А64E, 3324, 3223, AAEF......};
Как произвести поиск нужного мне значения?
Например нужно определить, есть ли внутри массива значение А64E, если есть, то +1 к значению N, а если нету, то -1....
________________
-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!
|
|
|
18.01.2013, 21:56
|
#2
|
|
|
|
Рыцарь-капитан
|
 Регистрация: 29.01.2010
 Сообщений: 547
 Популярность: 41279
 Сказал(а) спасибо: 692
Поблагодарили 2,270 раз(а) в 1,035 сообщениях
|
Re: Поиск данных в массиве....
старый добрый for (как по мне он самый удобный и понятный)
Код:
public static bool check(string[] array, string key )
{
for (int index = 0; index < array.Length; index++)
{
if (array[index] == key)
{
return true;
}
}
return false;
}
пример с использованием foreach (компилятор в большинстве случаем переводит его в for.)
Код:
public static bool check(string[] array, string key )
{
foreach (var a in array)
{
if (a == key)
{
return true;
}
}
return false;
}
пример с linq (как же я его ненавижу)
Код:
public static bool check(string[] array, string key )
{
return array.Any(t => t == key);
}
как использовать
Код:
int n = 0;
string[] array = new string[] {"dsadas","dsahdsad", "", "key", "22dsa8" };
if(check(array, "key")==true)
{
n++;
}
else
{
n--;
}
|
|
|
Пользователь сказал cпасибо:
|
|
18.01.2013, 22:58
|
#3
|
|
|
|
Старший сержант
|
 Регистрация: 04.02.2011
 Сообщений: 198
 Популярность: 12244
 Сказал(а) спасибо: 453
Поблагодарили 435 раз(а) в 242 сообщениях
|
Re: Поиск данных в массиве....
warl0ck, Спасибо...
Решил свою проблемму немного подругому:
Код:
if (((IList<string>)N_ID).Contains(New_Mass))
N++;//совпадение
else
N--;//нет совпадения
Может кому пригодится....
________________
-Отложи на послезавтра то что можешь сделать сегодня, и тогда у тебя появятся два свободных дня!
|
|
|
20.01.2013, 17:24
|
#4
|
|
|
|
Рыцарь-защитник
|
 Регистрация: 28.08.2009
 Сообщений: 603
 Популярность: 19129
 Золото Zhyk.Ru: 500
 Сказал(а) спасибо: 84
Поблагодарили 602 раз(а) в 321 сообщениях
|
Re: Поиск данных в массиве....
Код:
long howManyInMassive(string[] massive, string find)
{
return massive.Where(finding => finding == find).Count();
}
Самый быстрый способ, узнать сколько чего либо в массиве. на примере string.
(По сравнению с любыми циклами обрабатывается в разы быстрее)
//Пример
Код:
string[] New_Mass = { "AAA", "TTT", "GGG", "CCC", "AAA", "AAA", "AAA", "VVV", "AAA" };
long N = howManyInMassive(New_Mass, "AAA");
MessageBox.Show(N.ToString());
________________
We are Ducks. We are birds. We like bread. We cryack. Cryack.
Последний раз редактировалось Nickitee; 20.01.2013 в 17:26.
|
|
|
Пользователь сказал cпасибо:
|
|
20.01.2013, 18:17
|
#5
|
|
|
|
Сержант
|
 Регистрация: 01.10.2011
 Сообщений: 128
 Популярность: 5723
 Сказал(а) спасибо: 25
Поблагодарили 174 раз(а) в 105 сообщениях
|
Re: Поиск данных в массиве....
Ну и я тогда свои 5 копеек вставлю
Код:
long howManyInMassive<T>(IEnumerable<T> massive, T find)
{
return massive.Count(finding => finding == find);
}
________________
Talk is cheap. Show me the code
— Linus Torvalds
|
|
|
Пользователь сказал cпасибо:
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 07:06.
|
 |