2009-11-30 5 views
3

просто интересно, есть ли способ проверить, равен ли значение A равному ЛЮБОМ значению внутри массива (без использования больших функций цикла) - вроде как функция «Где».Значение, равное ЛЮБОМ значению в массиве?

например.

if (DataRow[column1value] == <any value within>Array A[]) 
{ 
//do... 
} 

Cheers!

+0

Я не знаю C# - но это похоже на то, что вы хотите: http://msdn.microsoft.com/en-us/library/system.collections.arraylist.contains.aspx –

ответ

13

В .NET 3.5 или выше, с помощью LINQ:

bool found = yourArray.Contains(yourValue); 

В более ранних версиях фреймворка:

bool found = Array.IndexOf(yourArray, yourValue) > -1; 
+1

Мне нравится ваш ответ лучше, чем принятый, потому что он отвечает ситуациям в разных версиях. –

+0

+1 Согласен с Робертом. Этот вопрос задает большой вопрос о stackoverflow, а? –

+0

Переход к изменению ... ответ такой же, как и ранее выбранный ответ, но также предоставляет другие версии фреймворка. Хороший. –

8
if(myArray.Contains(A)){...} 
+0

Это будет использовать метод расширения Enumerable.Contains. Обычно это вполне подходящее решение, но оно требует относительно небольшого штрафного штрафа, поскольку оно работает через 'IEnumerable'. Можно также использовать 'Array.IndexOf (array, value)> = 0', который работает только на массивах и работает несколько быстрее. –

0
yourArray.Any(item => item != null && item.Equals(yourvalue)); 
+1

Что относительно 'null' элементов? –

0

Вы можете попробовать Array.Contains

EDIT.

Im извините, Thisis, что я имел в виду

int[] array = new int[] { 1, 2, 3, 4, 5 }; 
if (array.Contains(5)) 
{ 
} 
+3

Нет «Array.Contains». –

+3

но есть ((ICollection) массив) .Contains (...) – erikkallen

0

Если мы говорим о чистом массиве типа, есть метод IndexOf(), который поможет вам определить, существует ли av alue in it

Смежные вопросы