如何将新对象插入匿名数组?
var v = new[]
{
new {Name = "a", Surname = "b", Age = 1},
new {Name = "b", Surname = "c", Age = 2}
};
我知道首先我们设置了数组的limit(size)。
我将其转换为列表。插入一个新对象。
v.ToList().Add(new { Name = "c", Surname = "d", Age = 3 });
但是我仍然在v变量中有2个元素。第三要素去哪儿了?
但是我不能分配给另一个List变量。
List newV = v.ToList();
最佳答案
.ToList()
产生一个新的列表对象,将输入源的所有元素(即数组)添加到其中。因此,原始数组完全不会更改。
您不能将元素添加到现有数组中,因为数组具有固定的大小,唯一可以做的就是将新数组放回变量中。
我没有尝试过,但是尝试一下:
var l = v.ToList();
l.Add(...); // your existing add code
v = l.ToArray();
但是,请注意,此时您应该首先查看为什么要使用匿名类型,我会认真考虑仅创建一个命名类型并使用列表作为开始。
请注意,您不能编写
List l = v.ToList();
,因为列表的类型是通用的(它将返回一些List<some-anonymous-type-here>
,而不仅仅是List
。对于匿名类型,您需要使用var
。关于c# - 如何将新对象插入匿名数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2199961/