2012-02-29 69 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)); 
    } 
}