2012-02-29 66 views
3

我需要存儲一對Point對的集合,但不希望使用純C#數組綁定到使用迭代器。哪一種最簡單的方法(使用KeyValuePair<Point,Point>除外)能夠在.Add(Point, Point)的範圍內擁有這樣的二維集合?在C中添加兩維數組#

+1

如何讓新班級儲存成對?然後把這個類的實例放入集合中? – Perlnika 2012-02-29 09:03:51

+2

也許'List >' – Reniuz 2012-02-29 09:04:07

+0

創建您自己的Tuple 列表並覆蓋Add方法,因此您不需要初始化新的Tuple。 MyList.Add(point a,point b){} – Lloyd 2012-02-29 09:05:46

回答

4

Point,Point一個鍵值對,這是一個Tuple<Point,Point>。您可以創建一個List<Tuple<Point,Point>>或任何適合您的需求。

然而,你應該記住的東西記 - 一個Tuple是不可變的結構 - 你不能改變它的元素,指向其他Point對象(但是,如果Point對象本身是可變的,你可能會變異的Point) 。如果您需要能夠更改此列表中的元素以指向其他點,請創建自己的類來保存這些元素。

1

List<Tuple<int,int>>你幫忙?

4

子類List<Tuple<Point,Point>>和創建。新增的兩個點參數的過載。

public class MyCollection : List<Tuple<Point, Point>> 
{ 
    public void Add(Point p1, Point p2) 
    { 
     this.Add(Tuple.Create(p1, p2)); 
    } 
}