【发布时间】:2019-04-28 19:57:27
【问题描述】:
我在使用 2D 点列表时遇到了多个问题。点是一系列线的终点和起点。
首先,这段代码 sn-p 来自 List 的声明。它是称为 TacLineStruct 的更大类的一部分:
// The actual MST Spine
public List <Point> [,] MSTSpine
{
get;
set;
}
public TacLineStruct(int arrayLength)
{
GroupID = new int[arrayLength];
this.EdgeList = new int[(arrayLength * arrayLength), 2];
EdgeWeight = new float[arrayLength * arrayLength];
GroupCenter = new Point[arrayLength];
this.MSTSpine = new List<Point>[arrayLength,2];
}
接下来,这些赋值会导致运行时错误:
Point tPoint1 = new Point((int)Army[TLS.EdgeList[i, 0]].Location.X, (int)Army[TLS.EdgeList[i, 0]].Location.Y);
Point tPoint2 = new Point((int)Army[TLS.EdgeList[i, 1]].Location.X, (int)Army[TLS.EdgeList[i, 1]].Location.Y);
TLS.MSTSpine[i,0].Add(tPoint1);
TLS.MSTSpine[i,1].Add(tPoint2);
最后,如何找到列表的计数?这不起作用:
for(int i = 0; i < TLS.MSTSpine[0,0].Count(); i++)
我之前发布了一个问题,询问声明、实例化和引用匹配点列表的正确方法,但立即遭到否决。我已经查看了所有内容,但在 StackOverflow 或我的任何手册中都没有发现这个问题。
【问题讨论】:
-
您没有二维点列表。您有一个由 1D 点列表组成的 2D 数组。没有像二维列表这样的东西。你能解释一下你心中的结构吗?你需要一个行列表吗?
T[,]是T的二维数组。在您的情况下,T是List<Point>。我会创建一个Line结构。 -
是的,带有起点和终点的行列表。
标签: c# list instantiation points