2017-08-01 145 views
-6

如何知道當我使用Array.IndexOf時值的存在位置?有沒有辦法在使用時獲得索引值.... Array.IndexOf?

我不喜歡使用Loop,因爲它滯後。

if (Array.IndexOf(myarray, myvalue) > -1) 
{ 
    Console.WriteLine("The value exists in myarray[" + " "+ "]"); 
}; 
+0

如果項目按值進行比較,那麼'IndexOf'會執行,否則可能需要循環。 – dcg

+7

你認爲IndexOf是如何工作的?它也使用循環,你不喜歡**看到**循環。 –

+0

@tanveerBadar Loop真的滯後:/ –

回答

3

您應該存儲IndexOf()的結果並使用它。

var result = Array.IndexOf(myarray, myvalue); 
if (result > -1) 
    Console.WriteLine("the value existe in myarray[" + result + "]"); 
0

捕捉價值是最好的方式,但如果你只需要值一次,你可以做到這一點的另一種方式沒有環是使用.Contains()方法爲條件,然後IndexOf()方法在if體內(如果你願意犧牲性能的少量,針對少量的可讀性):

var myArray = new string[] { "zero", "one", "two"}; 
var searchTerm = "two"; 

// Note that 'Contains' is an extension method that requires a reference to System.Linq 
if (myArray.Contains(searchTerm)) 
{ 
    Console.WriteLine("Found item '{0}' at index: {1}", 
     searchTerm, Array.IndexOf(myArray, searchTerm)); 
} 

輸出:

enter image description here

相關問題