2015-05-26 20 views
-2

所以我有一個從0到4的二維數組,這些都是混亂起來的。我想要做的是指定一個字節值,例如3。然後我想獲得數組中的每3個偏移量(x和y位置),並將它們放在一個列表(或另一個數組)中,以便我可以迭代通過所有的3。查找多維數組中的所有字節?

我很確定這是可能的,我只是不知道該怎麼做。我知道沒有預建的方法來迭代多維數組,所以我必須編寫一個方法來做到這一點。

總結:從2D數組中過濾某個類型的所有字節,並將它們的座標(偏移量)放入列表或其他數組中。

+4

_so我得寫做that_的方法,這樣做!向我們展示您到目前爲止所嘗試的內容,如果您有具體問題,我們將很樂意爲您提供幫助:) – Eminem

+0

請不要只是要求我們爲您解決問題。告訴我們你是如何試圖自己解決問題的,然後向我們展示結果是什麼,並告訴我們爲什麼你覺得它不起作用。請參閱「[您嘗試過什麼?](http://whathaveyoutried.com/)」,以獲得一篇您最近需要閱讀的優秀文章。 –

+0

首先使用鋸齒陣列,它只是更好。 – Jodrell

回答

1
public class Vector2 
{ 
    public int X { get; set; } 
    public int Y { get; set; } 
} 


public List<Vector2> GetBytes(byte[,] array, byte value) 
    { 
     List<Vector2> list = new List<Vector2>(); 
     int count; 
     for (int i = 0; i < XSize; i++) 
      for (int k = 0; k < YSize; k++) 
       if (array[i, k] == value) 
        list.Add(new Vector2 { X = i, Y = k }); 
     return list; 
    } 

這應該這樣做。

編輯,你可以看到類似的值:

list[position].X 
list[position].Y 
+0

不錯,我從來沒有想過使用Vector2。 – Pyroglyph

+1

如果你想遍歷列表的所有成員,你可以做一個foreach,如 foreach(Vector2 v列表) print(v.X +''+ v.Y); – Diogo