2009-11-30 46 views
3

只是想知道是否有任何方法檢查數值A是否等於數組中的任何值(不使用大循環函數) - 有點像「Where」函數。值等於數組中的任何值?

例如

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

乾杯!

+0

我不知道C# - 但這看起來像它可能是你想要的:http://msdn.microsoft.com/en-us/library/system.collections.arraylist.contains.aspx – 2009-11-30 17:00:19

回答

13

在.NET 3.5或更高版本,使用LINQ:

bool found = yourArray.Contains(yourValue); 

在早期版本的框架:

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

我喜歡你的答案比接受的更好,因爲它回答了各種版本的情況。 – 2009-11-30 17:05:14

+0

+1同意Robert。這個問題在stackoverflow上有很大的要求,呃? – 2009-11-30 17:31:18

+0

要改變...答案與先前選擇的答案相同,但也提供了其他版本的框架。好一個。 – 2009-12-01 12:08:25

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

這將使用'Enumerable.Contains'擴展方法。通常這是一個非常合適的解決方案,但它確實會導致相對較小的性能損失,因爲它通過「IEnumerable」工作。也可以使用'Array.IndexOf(array,value)> = 0',它只適用於數組,並且速度稍快。 – 2009-11-30 17:04:25

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

'null'項目呢? – 2009-11-30 17:10:36

0

您可以嘗試Array.Contains

編輯。

對不起,THISIS我的意思

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

沒有'Array.Contains'。 – 2009-11-30 17:05:02

+3

但有((ICollection)數組).Contains(...) – erikkallen 2009-11-30 17:24:10

0

如果我們正在討論純數組類型,這裏有IndexOf()方法,它可以幫助您確定是否存在av Alue in it

相關問題