C# 在c中如何将数组中的值放到另一个列表中#
有人能帮我吗,伙计们? 此foreach始终为错误索引超出范围。必须为非负数且小于集合的大小。(参数“索引”) 即使我给出了索引0,解决方案是什么C# 在c中如何将数组中的值放到另一个列表中#,c#,arrays,mongodb,list,C#,Arrays,Mongodb,List,有人能帮我吗,伙计们? 此foreach始终为错误索引超出范围。必须为非负数且小于集合的大小。(参数“索引”) 即使我给出了索引0,解决方案是什么 var store = _cartCollection.Find(x => x.id_cart == entity.id_cart).ToList(); int index = -1; foreach (var cart in store)
var store = _cartCollection.Find(x => x.id_cart == entity.id_cart).ToList();
int index = -1;
foreach (var cart in store)
{
var b = index++; // it shows
entity.cart[0].nama_produk = cart.nama_produk;
entity.cart[0].jumlah = cart.jumlah;
entity.cart[0].harga = cart.harga;
entity.cart[0].subtotal = cart.subtotal;
entity.cart[0].notes = cart.notes;
}
这是类对象
我想我错误地声明了实体购物车数组/列表,您知道正确的方法吗?
请不要吝啬我是个新手我不确定您的确切问题是什么,但我看到一些可能导致问题的“代码气味”:
var store = _cartCollection.Find(x => x.id_cart == entity.id_cart).ToList();
int index = -1;
foreach (var cart in store)
var cart = _cartCollection.Find(x => x.id_cart == entity.id_cart).FirstOrDefault();
那么你根本不需要for循环。。。就用你找到的那辆车吧。
在这一点上,您可能还应该检查购物车是否为空。。。如果它不存在。。。但这取决于您的特定用例
entity.cart[0].nama_produk = cart.nama_produk;
entity.cart[0].jumlah = cart.jumlah;
entity.cart[0].harga = cart.harga;
entity.cart[0].subtotal = cart.subtotal;
entity.cart[0].notes = cart.notes;
var entityCart = new Cart {
nama_produk = cart.nama_produk,
jumlah = cart.jumlah,
harga = cart.harga,
subtotal = cart.subtotal,
notes = cart.notes
};
entity.cart.Add(entityCart);
可能是您正在尝试将产品添加到购物车中……在这种情况下,您应该稍微更改变量名,但其余的变量名非常类似。
entity.cart[0]如果实体.cart
列表/数组中至少有一个项,则将起作用。但是,在循环中使用相同的索引0
时,也可能会出现逻辑错误,这意味着您每次都访问相同的项。我建议您后退一步,学习如何在运行时调试代码。下面是一些常见的错误可用的esources:,和.^--学习如何这样做将为您节省大量时间,这是任何开发人员无论经验如何都应该学习的。是的,我认为这是正确的,您能告诉我应该如何做吗??“var entityCart=new cart”中的cart是什么?这不是FirstOrDefault,我把它放在列表中是因为我想得到一个数据列表,并使用foreach#kina循环它如果你希望查询返回一个列表,foreach很好…只需用对象创建替换内部部分(我编了类名…但你可以放入正确的类)并使用Add4th解决方案,谢谢