簡體   English   中英

如何將數組中的值放入 c# 中的另一個列表

[英]How to put a value from array to another list in c#

任何人都可以幫助我,伙計們? 這個 foreach 總是錯誤索引超出范圍。 必須是非負數且小於集合的大小。 (參數'index')即使我給了索引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;
                    }

這是 class object

在此處輸入圖像描述

我想我錯誤地聲明了實體購物車數組/列表,你知道正確的方法嗎? 請不要吝嗇我是新手

我不確定您的確切問題是什么,但我看到一些可能導致問題的“代碼異味”:

  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 循環......只需使用你找到的一個購物車。 關於這一點,您還應該檢查購物車中的 null ...以防它不存在...但這取決於您的具體用例。

  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;

代碼不清楚。 我對您嘗試做的最好的猜測是將您找到的購物車的詳細信息添加到實體 object 上的購物車信息集合中。 我還假設 entity.cart 是一個 List 或類似的東西。

如果我的假設是正確的,那么您得到該異常的原因是 cart[0] 不存在,直到您將購物車 object 添加到該列表(這可能是您在這里嘗試做的事情。一種更易讀(且不易出錯)的方法是:

       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);

可能是您正在嘗試將產品添加到購物車...在這種情況下,您應該稍微更改變量名稱,但 rest 非常相似。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM