我正在尝试将单个项目添加到由ToArray()创建的数组中,遗憾的是我找不到任何有效的方法来添加新对象,这是我到目前为止所尝试的:
List<MyObject> MyList = new List<MyObject>();
MyList.Add(new MyObject { MyParam = "1" });
MyList.ToArray().Concat(new MyObject { MyParam = "2" });
我似乎无法直接连接新的MyObject,有没有办法做到这一点?
我知道我可以创建一个数组并使用concat将数组A添加到数组B但是在我的完全实现中我需要在Concat方法下创建一个新对象。
也许Concat甚至没有正确的前进方向?任何提示都将非常感激。
答案 0 :(得分:0)
从您的问题中不清楚您正在尝试做什么。如果您需要可调整大小的有序集合,那么_YourCombobox.setSelectedKey("");
比数组更好用。要添加项目,只需致电List<T>
。
在您发布的代码中,Add()
方法是一种返回 new 可枚举对象的扩展方法。它不会修改原件。如果你想要一个数组,并且你真的想使用Concat()
,你可以这样做:
Concat()
为什么你可能更喜欢这个,我不知道:
MyObject[] array = MyList.Concat(new [] { new MyObject { MyParam = "2" } }).ToArray();
在我看来,后者更好,因为它效率更高,更清楚地表达了你实际做的事情。
如果你真的想要一个数组而只一个数组,你可以使用MyList.Add(new MyObject{ MyParam = "2" });
MyObject[] array = MyList.ToArray();
:
Array.Resize()
我强烈反对使用这样的代码。这是管理可调整大小的集合的一种非常低效的方式。但它会起作用,而且坦率地说是最接近你似乎要求的规范。
如果以上内容不足以解决您的疑虑,请通过编辑来改进您的问题,以更清楚地描述您做想要做的事情。