我认为这是正确的问题/方法:
我有一个coords(x,y)列表和一个有X和Y的对象(Location);然后,我有一个函数,我检查每个相邻的位置,并将它与我的列表项(我转换为锯齿状数组)进行比较
SELECT t.tran_num, t.clinic, e.time_ran
FROM transactions t
INNER JOIN eod_master e
ON e.clinic=t.clinic
WHERE (t.tran_num BETWEEN e.start_tran_num AND e.end_tran_num)
(0表示它是开放路径)
现在,我的List,是一个简单的List,因此,我有一个错误:
static List<Location> GetWalkableAdjacentSquares(int x, int y, PointWithID [][]Map, Location target)
{
var proposedLocations = new List<Location>()
{
new Location { X = x, Y = y - 1 },
new Location { X = x, Y = y + 1 },
new Location { X = x - 1, Y = y },
new Location { X = x + 1, Y = y },
};
return proposedLocations.Where(l => Map[l.X][l.Y].value == 0).ToList();
}
所以我需要以这种方式进入List(我猜):
public static List<PointWithID> map = new List<PointWithID>();
我的问题是:
如何以这种方式将项目添加到列表中?
当然,常规方式不起作用:
public static List<List<PointWithID>> map = new List<List<PointWithID>>();
请帮忙吗?
答案 0 :(得分:1)
好吧,假设你有一个列表列表List<List<PointWithID>>
,当你调用Add()
方法时,你应该添加列表所需的泛型类型。因此,应在Add
方法中添加新列表。另一方面,内部列表应添加PointWithID
的对象。
我不确定你要做什么,但请看下面的代码:
private void addItemsToMap()
{
foreach (PointWithID open in NewMapToShow.openPath)
map.Add(new List<PointWithID> { open }); // create a new list for each point
}
或者
private void addItemsToMap()
{
// add all points in the main list as a new item (a list)
map.Add(new List<PointWithID>(NewMapToShow.openPath));
}