C#将动态对象数组添加到动态对象列表中

时间:2019-10-15 20:54:59

标签: c#

所以我有一个像这样的对象

    [["value1","value2","value3"]]

我的目标是访问这些对象,并对其进行修改,然后将其返回到包含现有对象的新列表中。

这就是我尝试过的

    List<dynamic> data = new List<dynamic>();
    foreach(var i in objects)
    {
       List<dynamic> innerData = new List<dynamic>();
       foreach(var j in i)
       {
           innerData.Add(j + " NEW");
       }
       data.AddRange(innerData);
    }

输出不一样。它将返回以下内容

    [["value1 NEW"], ["value2 NEW"],["value3 NEW"]]

它返回一个新列表,但是它没有在列表中包含一个带有三个值的对象,而是在列表中返回了三个带有一个值的对象。

我的目标是使输出格式与输入格式相同。像这样

    [["value1 NEW","value2 NEW", "value3 NEW"]]

1 个答案:

答案 0 :(得分:1)

如注释中所建议,您需要使用Add而不是AddRangeAddRange将列表的每个元素添加为外部列表中的新元素,而您想要的是将内部列表添加为外部列表中的一个元素。

然后,固定代码如下:

List<dynamic> data = new List<dynamic>();
foreach(var i in objects)
{
    List<dynamic> innerData = new List<dynamic>();
    foreach(var j in i)
    {
        innerData.Add(j + " NEW");
    }
    data.Add(innerData);
}