2013-02-03 35 views
0

我有2個列表來跟蹤網格上的x和y座標。比較2在同等索引下int類型的列表

Im循環遍歷高度和寬度,然後使用if檢查來查看w和h值是否位於同一索引處的列表中。

繼承人我得到了但它不正常工作。

for (int h = yMin; h <= yMax; h++) 
{ 
    for (int w = xMin; w <= xMax; w++) 
    { 
    if (x[w] == (w) && y[h] == (h)) 
    { 
     //do some code 
    } 
    } 
} 

我也用。載有方法上的列表嘗試,但,這並不相同指數在對它們進行比較......我在名單不在乎它們是什麼索引,只要它們是在同一指數都在。

if (x.Contains(w) && y.Contains(h)) 

我正在尋找一些方法來測試它們在列表內部找到的索引。列表中也可以包含多於1個相同的數字。

if (x.Contains(w) && y.Contains(h)) 
{ 
    if (x.FoundIndex(w). == y.FoundIndex(h)) 
    { 
     // this would be awesome if it worked!!!! 
    } 
} 

剛上變量的說明.. YMIN和XMIN 0開始的for循環,而循環中的DO將由1每次迭代增加它們的內部。 yMax和xMax是我們在網格內看到的正方形的大小。

也許有一個更好的辦法,我只是不知道..我試圖找到一個座標數據類型/對象,但不成功。

我能想到的唯一方法是循環顯示x列表,並將每個索引與相同索引處的y列表進行比較。似乎應該有一個更乾淨的方式來做到這一點。

請幫忙!

編輯1: 在想到我正在努力完成的事情後,我能夠圍住它並想出了這個......這就是我的代碼是如何在我的程序中爲您使用的@DJ KRAZE

for (int intCnt = 0; intCnt < lstXCoord.Count(); intCnt++) 
{ 
    if (lstXCoord[intCnt] == intWidth) 
    { 
     if (lstYCoord[intCnt] == intHeight) 
     { 
      // do my code.. 
     } 
    } 
} 
+1

安迪我建議,如果您使用的是列表您不要使用變量名稱,如X,H,W,...等這使得您的代碼非常難以閱讀..我希望你的其他代碼不是那麼草率。 – MethodMan

+1

我剛剛用這個例子。我真正的代碼使用匈牙利符號。 lst,int,str等;;) –

+1

感謝您試圖提供遵循默認C#指導原則的代碼。不要把匈牙利符號作爲公共樣本是個好主意。爲了使它真的很好 - 爲索引變量和座標列表使用有意義的名稱(如DJ建議的那樣)。 –

回答

1

試試這個:

if (x.IndexOf(w) == y.IndexOf(h)) 
{ 
    // do your stuff 
} 
+0

我得到了你的去向,但就像我說的,我不在乎,或者一定知道它可能在哪個索引處。該列表可以各有2個值,最多1,000個值。我想要在兩個單獨列表的給定索引處的值匹配我的'w'和'h',以知道im查看的座標對是否存在於正在測試的區域內部。 –