這裏對象列表是類與更新錯誤
public class CartManage
{
public int prodId { get; set; }
// public string prodId { get; set; }
public int qty { get; set; }
public string color { get; set; }
public string size { get; set; }
public string Name { get; set; }
public string ShortDescription { get; set; }
public string Specification { get; set; }
public double Price { get; set; }
public string skew { get; set; }
public string weight { get; set; }
public string maxqty { get; set; }
public string productimage { get; set; }
public string prd_vendor_id { get; set; }
public string prdDeliveryDays { get; set; }
public bool GiftingEnabled { get; set; }
public int GiftingId { get; set; }
}
我用這個在我的網站即名單< CartManage> prodList_temp管理購物車。現在,當一個人增加購物車中物品的數量時。我在列表中添加另一個對象(我曾經只是增加對象的數量,但由於我必須實現一些功能,我需要單獨的對象)。我通過在列表上執行linq查詢來完成此操作,並將結果添加到購物車。
var session_updating_data = prodList_temp.Where(p => p.skew == reqired_skew);
prodList_temp.Add(session_updating_data.FirstOrDefault());
即時通訊的問題是,插入後,如果在任何副本中更改任何副本,更改將反映在所有副本中。例如,我有兩個數量的物品A,即購物車包含兩個物品,其中包含如上所示創建的物品a的詳細信息。現在,如果我更改任何一個對象的giftingEnabled屬性,它都會反映在兩者中。現在我通過創建一個新對象找到了解決此問題的方法。但我想知道爲什麼這種奇怪的現象正在發生以備將來參考。
這是因爲這行prodList_temp.Where(p => p.skew == reqired_skew);實際上,它正在編輯您現有的列表項目並將相同的副本添加到您的列表中。更好的辦法是創建新的清單項目併爲其分配新的值。 – DSA