2011-03-26 49 views
0

很抱歉的頭銜,我會把這裏的什麼我要完成一個例子:獲取多維分類的索引

namespace mdclass 
{ 
    class pClass 
    { 
    static void Main() 
    { 
     tiles<int> tl = new tiles<int>(); 
     tl[0].X = 0; 
    } 
    } 

    class tiles<T> : List<T> 
    { 
    public int X 
    { 
     //get/set the X-coordonate 
    } 

    public int Y 
    { 
     //get/set the Y-coordonate 
    } 

    } 
} 

我怎樣才能從tl[0]public int X轉移[0],並與它的工作?

+0

所以,你已經有了一個'磚',它是 - 一個'列表'。所以你需要兩個索引來標識一個'int',一個索引到'List'中,另一個索引到一個包含的'int []'中。那麼你究竟想要獲得或設置什麼,比如說'X'要做什麼?會不會像'tl [0] [0]'做你想要的東西? – 2011-03-26 11:04:30

+0

@Gareth McCaughan對不起,沒有任何幫助。我修復了這個問題中的錯誤(並且我在@James Walford中提出了一個解釋。回答# – Sp3ct3R 2011-03-26 11:18:55

回答

3

創建x和y一類座標:

public sealed class Point { 
    public int X { get; set; } 
    public int Y { get; set; } 
} 

使用Point類的座標存儲到列表:

public sealed class Program { 
    public static void Main() { 
     var tiles = new List<Point>(); 
     tiles.Add(new Point { X = 5, Y = 10 }); 

     tiles[0].X = 15; 
    } 
} 
0

難道你不只是讓公衆?

然後myInt = mypClass.tl[0].X

+0

我認爲你沒有理解我想要做什麼...我有一個由此列表製作的網格。 '公共int X'我想要計算X-coord(索引%4 - 將給我在4列的網格中的平方的x座標),但我不知道如何將索引0從'tl [0]'到函數'X' – Sp3ct3R 2011-03-26 11:12:43

+0

所以public int X的值是它的索引的函數,但是你不知道它的索引嗎? – 2011-03-26 11:57:03

+0

如果那是正確的,那麼你所有的代碼應該可能在一個網格類,我不明白爲什麼當一個二維結構更好地適合你的數據時,你希望你所有的座標都在列表中。 – 2011-03-26 12:16:02

0

數據heirachy這樣可能會爲你工作(沒時間添加實際的代碼,對不起!)。然後你可以實現適當的getter和setter。

Public class Grid { 

List<Row> 

} 

Public class Row{ 
List<Point> 

} 

Public Class Point{ 
    public int X { get; set; } 
    public int Y { get; set; } 

}