2012-11-05 120 views
3

嗨有一種方法可以檢查C#中特定數字的特定整數數組索引;例如我喜歡的工作將是:在數組中檢索特定索引的具體索引

if(si[6] || si[7] || si[8] == 3) 
    { 
     MessageBox.Show("3 detected") 
    } 
    else 
    { 
    continue(); 
    { 

顯然這是行不通的。有沒有一種乾淨的方式來做到這一點?感謝您的期待。

回答

10
var indexes = new int[] {6, 7, 8}; 
if (indexes.Any(i => si[i] == 3)) 
{ 
    MessageBox.Show("3 detected") 
} 
+0

如果有不同的值(除了3)和不同的索引,那麼一個「字典」就可以工作。 – Servy

+0

現在這是一個很好的解決方案 – Anirudha

+0

+1不錯的解決方案 –

5

最簡單的就是讓三個獨立的檢查:

if (si[6] == 3 || si[7] == 3 || si[8] == 3) 
+0

考慮先執行邊界檢查。 – Servy

1

你可以這樣做有點整潔的使用方法與PARAMS:

public static bool HasValue(int value, params int[] itemsToCheck) 
{ 
    bool valueDetected = false; 
    foreach(var item in itemsToCheck) 
    { 
     valueDetected |= item == value; 
    } 

    return valueDetected; 
} 

然後,你可以叫它像這樣:

if (HasValue(3, si[6], si[7], si[8])) 
{ 

} 
1

您可以使用Array.IndexOf函數來查找整數的索引。如果數組有整數,那麼它將返回索引,否則它將返回-1。

像這樣 int [] a = new int [] {1,2}; int c = Array.IndexOf(a,2);

+0

他想要在特定的'索引'搜索數據不在整個數組中 – Anirudha