Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C中带有.Add的二维数组#_C#_Collections - Fatal编程技术网

C# C中带有.Add的二维数组#

C# C中带有.Add的二维数组#,c#,collections,C#,Collections,我需要存储一组点对,但不想使用普通的C#数组绑定到迭代器的使用上。除了使用KeyValuePair)之外,能够将(点,点)添加到二维集合中的最简单方法是什么(除了使用KeyValuePair),它将列出您的帮助?点,点不是一个键值对,而是一个元组。您可以创建一个列表或任何适合您需要的内容 但是,您应该记住一点,元组是一个不可变的结构,不能将其元素更改为指向其他点对象(但是,如果点对象本身是可变的,则可以对点进行变异)。如果您需要能够将此列表中的元素更改为指向其他点,请创建自己的类来保存这些元素。

我需要存储一组
对,但不想使用普通的C#数组绑定到迭代器的使用上。除了使用
KeyValuePair
)之外,能够
将(点,点)
添加到二维集合中的最简单方法是什么(除了使用
KeyValuePair
),它将
列出您的帮助?

点,点
不是一个键值对,而是一个
元组。您可以创建一个
列表
或任何适合您需要的内容

但是,您应该记住一点,
元组是一个不可变的结构,
不能将其元素更改为指向其他
对象(但是,如果
对象本身是可变的,则可以对
进行变异)。如果您需要能够将此列表中的元素更改为指向其他点,请创建自己的类来保存这些元素。

IEnumerable
IEnumerable<Tuple<Point, Point>> 

子类
列出
并创建重载。添加两个点参数

public class MyCollection : List<Tuple<Point, Point>>
{
    public void Add(Point p1, Point p2)
    {
        this.Add(Tuple.Create(p1, p2));
    }
}
公共类MyCollection:列表
{
公共空间添加(点p1、点p2)
{
this.Add(Tuple.Create(p1,p2));
}
}

制作新的类来存储配对怎么样?然后将该类的实例放入集合中?可能
List
创建您自己的元组列表并重写Add方法,这样您就不需要初始化新元组。MyList.Add(点a,点b){}我更喜欢Perlnika的想法,而不是使用Tuple+1,因为它是唯一使用
IEnumerable
over
List
的人。通过使用
Point
而不是保留泛型类型参数,它可以更具体地用于示例。