二维点列表存在多个问题。这些点是一系列直线的“到”和“从”点。
首先,此代码段来自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或任何我的手册中找到这个问题。
答案 0 :(得分:2)
如果您声明一个var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
var url = req.url;
if(url ==='/'){
fs.readFile(‘./index.html’, function(err, html) {
if(err)
throw err;
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(html);
res.end();
});
} else if(url ==='/test.json'){
fs.readFile(‘./test.json’, function(err, json) {
if(err)
throw err;
res.writeHead(200, {'Content-Type': 'text/json'});
res.write(json);
res.end();
});
} else {
res.write('404 Not Found');
res.end();
}
}).listen(3000, function(){
console.info("Server started at port 3000");
});
结构,那将使事情变得更容易:
Line
现在行列表可以声明为
public struct Line
{
public Line(Point start, Point end)
{
Start = start;
End = end;
}
public Point Start { get; }
public Point End { get; }
public override string ToString()
{
return String.Format($"({Start.X}, {Start.Y}) - ({End.X}, {End.Y})");
}
}
并像这样使用
public List<Line> MSTSpine { get; } = new List<Line>();
我看到您还声明了一个var p1 = new Point(1, 2);
var p2 = new Point(3, 4);
var line = new Line(p1, p2);
MSTSpine.Add(line);
Console.WriteLine(MSTSpine[0].Start.X);
Console.WriteLine(MSTSpine[0]); // Prints: (1, 2) - (3, 4)
数组。相反,我将weight属性添加到EdgeWeight
结构中。