C# 合并新对象
我正在尝试向ToArray()创建的数组中添加单个项,不幸的是,我找不到任何有效的方法来添加新对象,以下是我迄今为止尝试的内容:C# 合并新对象,c#,linq,C#,Linq,我正在尝试向ToArray()创建的数组中添加单个项,不幸的是,我找不到任何有效的方法来添加新对象,以下是我迄今为止尝试的内容: List<MyObject> MyList = new List<MyObject>(); MyList.Add(new MyObject { MyParam = "1" }); MyList.ToArray().Concat(new MyObject { MyParam = "2" }); List MyList=new List();
List<MyObject> MyList = new List<MyObject>();
MyList.Add(new MyObject { MyParam = "1" });
MyList.ToArray().Concat(new MyObject { MyParam = "2" });
List MyList=new List();
添加(新的MyObject{MyParam=“1”});
MyList.ToArray().Concat(新的MyObject{MyParam=“2”});
我似乎无法直接连接到新的MyObject,有什么方法可以做到这一点吗
我知道我可以创建一个数组并使用concat将数组a添加到数组B中,但在我的完整实现中,我需要在concat方法下创建一个新对象
也许Concat甚至不是正确的前进方向?如果您有任何建议,我们将不胜感激。您的问题并不清楚您到底想做什么。如果需要可调整大小的有序集合,则使用
List
比使用数组更好。要添加项目,只需调用add()
在您发布的代码中,Concat()
方法是一个扩展方法,它返回一个新的可枚举对象。它不会修改原始文件。如果您想要一个数组,并且确实想使用Concat()
,可以执行以下操作:
MyObject[] array = MyList.Concat(new [] { new MyObject { MyParam = "2" } }).ToArray();
我不知道你为什么会喜欢这个:
MyList.Add(new MyObject{ MyParam = "2" });
MyObject[] array = MyList.ToArray();
在我看来,后者更好,因为它更有效,更清楚地表达了你实际上在做什么
如果您确实想要一个数组,并且只想要一个数组,则可以使用array.Resize()
:
我强烈反对使用这样的代码。这是一种管理可调整大小的集合的效率极低的方法。但它会起作用,坦率地说,它最符合您要求的规范
如果以上信息不足以解决您的问题,请通过编辑问题来改进您的问题,以便更清楚地描述您想做什么。数组无法调整大小。您应该使用
List
而不是数组。是否将它们合并到一个索引中??MyList已经是MyObject的列表。如果您试图添加更多内容,只需转到MyList.add(newmyobject{MyParam=“2”});您可能希望将您的MyList.ToArray()
调用替换为MyList.ToList()
调用,然后使用List.Add
方法添加该项
MyObject[] array = new [] { new MyObject { MyParam = "1" } };
Array.Resize(ref array, array.Length + 1);
array[array.Length - 1] = new MyObject { MyParam = "2" };