如何将项目添加到列表<列表>
本文关键字:列表 添加 项目 | 更新日期: 2023-09-27 18:31:02
我认为这是正确的问题/方法:
我有一个坐标列表(x,y)和一个具有X和Y的对象(位置); 然后,我有一个功能,可以检查每个相邻位置,并将它们与我的列表项(我将其转换为交错数组)进行比较
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();
}
(0 表示它是开放路径)
现在,我的列表是一个简单的列表,因此,我有一个错误:
public static List<PointWithID> map = new List<PointWithID>();
所以我需要以这种方式列出(我猜):
public static List<List<PointWithID>> map = new List<List<PointWithID>>();
我的问题是:
如何以这种方式将项目添加到列表中?
当然,常规方式不起作用:
private void addItemsToMap()
{
try
{
foreach (PointWithID open in NewMapToShow.openPath)
{
map.Add(open);
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.ToString());
}
}
有什么帮助吗?
好吧,假设您有一个列表列表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));
}