如何将值从数组放入C#中的另一个列表

基娜·法尔扎纳(Kina Farzana)

有人可以帮助我吗?此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;
                    }

这是类对象

在此处输入图片说明

我想我错误地声明了实体购物车数组/列表,您知道正确的方法吗?请不要是故意的,我是新手

大卫·施瓦兹

我不确定您的确切问题在哪里,但是我看到一些可能导致问题的“代码异味”:

  1. 在此代码块中:

     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循环...只需使用找到的一个购物车即可。关于这一点,您还应该检查购物车是否为空...以防它不存在...但这取决于您的特定用例。

  1. 索引对于循环中的每个步骤都在递增...但是从不使用它的值。除非您有理由使用它,否则建议您完全删除它...除非您打算检索多个购物车并将其全部添加到entity.cart集合中。

  2. 在此代码块中(实际上是引发错误的原因:

                     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是一个List或类似的东西。

如果我的假设是正确的,那么您得到该异常的原因是,在将购物车对象添加到该列表之前,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);

可能是您试图将产品添加到购物车中……在这种情况下,您应该稍微更改变量名,但是其余的非常相似。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将数组列表中的值从AsyncTask类发送到Android中的另一个类?

将数组值放入php中的另一个数组

如何将数组列表中的元素替换为另一个?

python:如何将列表中的每个值与另一个列表中的所有值相乘

如何将隐藏的输入传递给C#中的另一个程序

python字典将键的值放入一个列表,其中键在另一个列表中

如何将一个列表/数组除以另一个?

如何将列表添加到C#中的另一个列表?

如何将值从数组中的对象添加到另一个数组中的另一个对象?

如何将一个列表中的索引匹配到另一个列表并存储值?

如何将值从一个列表移动到另一个列表,同时将其从第一个列表中删除

如何将一个值放在另一个列表中?

如何将列表中的值与另一个匹配

在PHP / Opencart中,如何将一个数组放入另一个数组中?

C# LightInject - 如何将包含中的实例替换为另一个

如何将一个数组中的值添加到另一个数组?

c++ - 如何将一个结构体数组的值复制到另一个结构体数组中

如何将char数组的值传递给C中另一个文件中的函数?

如何将列表对象的项目放入另一个列表

如何将值放入另一个类的控制器中?

PHP如何将一个数组的值赋给另一个数组中的变量

将一个文件php的数组值放入另一个文件的另一个数组中

c# - 如何将两个不同的表列表放入一个新列表中

如何将文本字段的值放入另一个文本字段?

如何将另一个元素作为列表插入到 TreeMap 值中

如何将返回小部件列表的方法放入另一个小部件列表中?(内联样式)

如何将循环数组放入另一个数组中

如何将一个对象添加到数组列表中,该对象是 Redux 工具包中另一个对象的值

如何将数组中的值列表重新映射到 NumPy 中的另一个值列表?