【发布时间】:2018-07-17 19:47:58
【问题描述】:
这是我原来的清单:
var cart = _workContext.CurrentCustomer.ShoppingCartItems
.Where(sci => sci.ShoppingCartType == ShoppingCartType.ShoppingCart)
.LimitPerStore(_storeContext.CurrentStore.Id)
.ToList();
我查看了这个链接:How do I change my new list without changing the original list?
并且知道我有复制的方法,所以这是我的方法:
private List<ShoppingCartItem> CopyShoppingCartItems(List<ShoppingCartItem> target)
{
//var tmp = new List<ShoppingCartItem>(target);
var tmp = target.ToList();
return tmp;
}
我也测试了 var var tmp = new List<shoppingCartItem>(target)。
这是我的目标:
var beforeUpdatCart = CopyShoppingCartItems(cart);
foreach (var sci in cart)
{
var remove = allIdsToRemove.Contains(sci.Id);
if (remove)
_shoppingCartService.DeleteShoppingCartItem(sci, ensureOnlyActiveCheckoutAttributes: true);
else
{
foreach (var formKey in form.Keys)
if (formKey.Equals($"itemquantity{sci.Id}", StringComparison.InvariantCultureIgnoreCase))
{
int newQuantity;
if (int.TryParse(form[formKey], out newQuantity))
{
sci.Quantity = newQuantity;
}
break;
}
}
}
但 newQuantity 插入到 List<shoppingCartItem> : cart 和 beforeUpdateCart 中。
谁能帮帮我?
【问题讨论】:
标签: c#