如何将新对象插入匿名数组?
var v = new[]
{
new {Name = "a", Surname = "b", Age = 1},
new {Name = "b", Surname = "c", Age = 2}
};
Run Code Online (Sandbox Code Playgroud)
我知道首先我们设置数组的限制(大小).
我将它转换为List.要插入新对象.
v.ToList().Add(new { Name = "c", Surname = "d", Age = 3 });
Run Code Online (Sandbox Code Playgroud)
但我仍然在v变量中有2个元素.第三个元素去了哪里?
但我无法分配给另一个List变量.
List newV = v.ToList();
Run Code Online (Sandbox Code Playgroud)
.ToList()生成一个新的列表对象,将输入源的所有元素(数组)添加到其中.因此,原始阵列根本不会改变.
您不能向现有数组添加元素,它具有固定大小,您唯一能做的就是将新数组放回变量中.
我没试过,但试试这个:
var l = v.ToList();
l.Add(...); // your existing add code
v = l.ToArray();
Run Code Online (Sandbox Code Playgroud)
但是,请注意,此时您应该首先考虑为什么要使用匿名类型,我会认真考虑创建一个命名类型,并使用列表开始.
请注意,您不能写,List l = v.ToList();因为列表的类型是通用的(它将返回一些List<some-anonymous-type-here>,而不仅仅是List.使用匿名类型,您需要使用var.
| 归档时间: |
|
| 查看次数: |
6640 次 |
| 最近记录: |