Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中向数组添加项#_C#_Arrays - Fatal编程技术网

C# 在C中向数组添加项#

C# 在C中向数组添加项#,c#,arrays,C#,Arrays,我有一个购物车,我在foreach循环中迭代。购物车中的每个项目都需要添加到orderItemList数组中 orderItemList = [{ orderItemId = 1, quantity = 2 },{ orderItemId = 2, quantity =1 }] 所以我试着用 foreach(var items in shoppingCart) { var newOrderItems = new[] { new orderItem { orderItemId = it

我有一个购物车,我在foreach循环中迭代。购物车中的每个项目都需要添加到orderItemList数组中

orderItemList = 
[{
orderItemId = 1,
quantity = 2
},{
orderItemId = 2, 
quantity =1 
}]
所以我试着用

foreach(var items in shoppingCart)
{
var newOrderItems = new[] 
{  new orderItem { orderItemId = item.Id , quantity = item.quantity }
};
它只是在购物车中添加最后一项。它循环并创建每一个,但只添加最后一个。我错过了什么


newOrderItems仅返回一个项,即使它循环

只需在循环外声明数组……下面是一个使用数组的示例:

OrderItem[] newOrderItems = new OrderItem[shoppingCart.Length];

for (int i = 0; i < shoppingCart.Length; i++)
{
    var item = shoppingCart[i];
    newOrderItems[i] = new OrderItem {orderItemId = item.Id, quantity = item.quantity};
}

只需在循环外声明数组……以下是使用数组的示例:

OrderItem[] newOrderItems = new OrderItem[shoppingCart.Length];

for (int i = 0; i < shoppingCart.Length; i++)
{
    var item = shoppingCart[i];
    newOrderItems[i] = new OrderItem {orderItemId = item.Id, quantity = item.quantity};
}

您需要声明
var newOrderItems=newlist()在foreach循环之外,然后使用

newOrderItems.Add(new orderItem {...});

如果您在内部声明它,它将被一次又一次地创建。

您需要声明
var newOrderItems=newlist()在foreach循环之外,然后使用

newOrderItems.Add(new orderItem {...});

如果在内部声明,则会一次又一次地创建它。

每次在循环中创建一个包含一个项目的新数组(因此称为“new[])。无法更改数组的大小,请改用列表对象:


每次在循环中创建一个包含一个项的新数组(因此称为“new[])。无法更改数组的大小,请改用列表对象:


<>而不是使用数组,而是考虑使用框架提供的一个泛型集合类。这些设计用于添加和删除(以及许多其他内容,例如:

var orderItems = new List<orderItem>();

foreach(var items in shoppingCart)
{
    orderItems.Add(new orderItem 
    {
        orderItemId = item.Id, 
        quantity = item.quantity 
    });
};

<>而不是使用数组,考虑使用框架所提供的泛型集合类中的一个。这些被设计为添加和移除(在许多其他事物中。例如:

)。
var orderItems = new List<orderItem>();

foreach(var items in shoppingCart)
{
    orderItems.Add(new orderItem 
    {
        orderItemId = item.Id, 
        quantity = item.quantity 
    });
};
尝试:

没有测试它,但它应该可以工作。

尝试:



没有测试它,但它应该可以工作。

您在每次迭代中都要创建一个新数组..?这就是它的外观,但我需要做的是向数组中添加一个新项。我需要在一个数组中添加多个项。数组的大小是固定的,您不能在数组中添加或删除项。您在每次迭代中都要创建一个新数组..?这就是为什么看起来很像,但我需要做的是向数组中添加一个新项。我需要在一个数组中添加多个项。数组的大小是固定的,您不能在数组中添加或删除项。您创建的是列表,而不是数组。我总是不太习惯将Linq语句称为“一行”当它们实际上只是一长串命令时。你在创建一个列表,而不是一个数组。我总是很不习惯将Linq语句称为“一行”当它们实际上只是一长串命令时。数组没有Add方法。你的答案不起作用。数组没有Add方法。你的答案不起作用。为什么要进行向下投票?你必须指出这一点。但是修复了它。因为它没有编译。对于
语法,
没有定义(现在是这样),
顺序
没有定义,等等……为什么否决票?你必须指出这一点。但是修复了这个问题。因为它没有编译。对于
语法,
没有定义(虽然现在是这样),
顺序
没有定义,等等……我不明白为什么这是公认的答案,因为它没有回答这个问题。问题是关于将项目添加到数组而不是列表,也不是将列表转换为数组。他每次通过循环创建一个新数组,而不是将项目添加到现有数组。事实上,您无法添加到arr是的,所以我建议使用列表代替标题。我不明白为什么这是公认的答案,因为它没有回答这个问题。问题是关于向数组中添加项而不是列表,也不是将列表转换为数组。他每次通过循环都创建一个新数组,而不是向现有数组中添加项。事实上,你不能这样添加到数组中我建议用列表代替
var orderItems = shoppingCart
    .Select(s => new orderItem
    {
        orderItemId = item.Id, 
        quantity = item.quantity 
    })
    .ToList();
for(var item in shoppingCart){
    var newOrderItems = new[] {  new orderItem { orderItemId = item.Id , quantity = item.quantity }};
    orderItemList = orderItemList.Concat(newOrderItems).ToArray();
}