C# Intellisense在使用项[X,Y]时无法识别我的二维列表
我正在尝试将一些旧的Delphi代码(dijkstra路径查找算法)转换为C#。我在Delphi中使用了数组,但由于C#不允许动态调整大小,我使用了二维列表 但我希望在Map[X,Y]上找到我的PathCoord类,VisualStudio一直告诉我“对于方法'this'不存在重载,它需要2个参数”。intellisense要么给我另一个列表的下拉列表,要么给我一个基本对象的四个选项非定义对象 我很可能忽略了一些非常明显的事情,但我已经看了好几个小时了,开始觉得我在盲目地盯着自己看 任何帮助都将不胜感激C# Intellisense在使用项[X,Y]时无法识别我的二维列表,c#,C#,我正在尝试将一些旧的Delphi代码(dijkstra路径查找算法)转换为C#。我在Delphi中使用了数组,但由于C#不允许动态调整大小,我使用了二维列表 但我希望在Map[X,Y]上找到我的PathCoord类,VisualStudio一直告诉我“对于方法'this'不存在重载,它需要2个参数”。intellisense要么给我另一个列表的下拉列表,要么给我一个基本对象的四个选项非定义对象 我很可能忽略了一些非常明显的事情,但我已经看了好几个小时了,开始觉得我在盲目地盯着自己看 任何帮助都将
public class PathCoord
{
List<Point> PathTo;
Color TheColor;
double Cost;
public PathCoord()
{
PathTo = new List<Point>();
TheColor = Color.FromArgb(0, 0, 0, 0);
Cost = 0f;
}
}
public class PathEngine
{
public List<List<PathCoord>> Map = new List<List<PathCoord>>();
public void AddPathToPoint(Point newPoint, List<Point> PathTo, double Cost)
{
Map[newPointX, newPoint.Y].
}
}
公共类PathCoord
{
列出路径;
颜色;
双重成本;
公共PathCoord()
{
PathTo=新列表();
颜色=颜色。来自argb(0,0,0,0);
成本=0f;
}
}
公共类路径引擎
{
公共列表映射=新列表();
public void AddPathToPoint(点新点、列表路径到、双倍成本)
{
Map[newPointX,newPoint.Y]。
}
}
这是最短的代码示例。我认为最好不要包含太多的代码,但如果需要,我会很高兴地包含整个您的
Map
字段不是二维数组。看起来是这样的:
PathCoord[,]Map=newpathcoord[2,5];
不仅如此,您的映射
根本不是一个数组,而是一个动态的列表
集合。在C#中没有“多维列表”这类东西(至少在多维数组存在的意义上不是这样)
相反,您的映射是一个嵌套列表或列表列表。因此,您需要使用“交错数组”方法,即使用多个索引器-每个级别的列表对应一个索引器:
Map[newPointX][newPointY]=。。。;
很确定,这是因为您需要执行[]]
而不是[,]
。找到一个好的副本。感谢Abion47和gunr2171的帮助。我也试过了,但昨天仍然出现同样的编译器错误。不过现在它可以工作了,我想可能需要重新启动VS。遗憾的是,我没有足够的声誉来支持你的回答。