如何将项目添加到列表<list <t>&gt;?

时间:2016-01-18 17:51:41

标签: c# list multidimensional-array windows-phone-8.1

我认为这是正确的问题/方法:

我有一个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>>();

请帮忙吗?

1 个答案:

答案 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));
}