Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Mongodb_List - Fatal编程技术网

C# 在c中如何将数组中的值放到另一个列表中#

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)

有人能帮我吗,伙计们? 此foreach始终为错误索引超出范围。必须为非负数且小于集合的大小。(参数“索引”) 即使我给出了索引0,解决方案是什么

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)
    
  • 似乎您正在根据其ID检索单个购物车,然后对其进行处理。如果我有这个权利,你可以通过这样的方式更简单地实现这一点:

        var cart = _cartCollection.Find(x => x.id_cart == entity.id_cart).FirstOrDefault();
    
    那么你根本不需要for循环。。。就用你找到的那辆车吧。 在这一点上,您可能还应该检查购物车是否为空。。。如果它不存在。。。但这取决于您的特定用例

  • 循环中的每个步骤的索引都在递增。。。但它的价值从未被使用过。除非你有理由使用它,我建议你完全删除它。。。除非您打算检索多个购物车并将其全部添加到entity.cart集合

  • 在此代码块中(实际抛出错误的是:

                     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;
    
  • 代码不清楚。我对您尝试执行的操作的最佳猜测是将您找到的购物车的详细信息添加到实体对象上的购物车信息集合中。我还假设entity.cart是一个列表或类似的东西

    如果我的假设是正确的,那么您得到该异常的原因是购物车[0]不存在,除非您将购物车对象添加到该列表中(这可能是您在此处尝试的操作。更具可读性(且不易出错)的方法是:

           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解决方案,谢谢