asp.net mvc3中泛型的使用

时间:2022-11-28 19:52:26
情况是这样的,我在做一个购物车,用户退出登陆时,购物车中未支付的商品就会清除,所以就没有用购物车的数据表,假设我的购物车model是ShoppingCartModels,每次添加商品到购物车时,要判断购物车中是否存在该商品,如果存在就改变购物车中的该商品的数量ProductCount和总金额Amount????
就是这个业务需求,请各位帮帮忙,急急急。。。

5 个解决方案

#1


list<ProductInfo> productList=new list<ProductInfo>();
productInfo product=new productInfo();

productInfo 里面包含商品的id和count 对productList遍历就可以判断是否存在。

#2


引用 1 楼 M_babyzhang 的回复:
list<ProductInfo> productList=new list<ProductInfo>();
productInfo product=new productInfo();

productInfo 里面包含商品的id和count 对productList遍历就可以判断是否存在。

正解

#3


public class ShoppingCart{
   public List<ShoppingCartModels> Items{get;set;}
   public decimal Amount{get;set;}
   public void Add(ShoppingCartModels model){
          if(Items==null)
                Items = new List<ShoppingCartModels>();
          var item = Items.FirstOrDefault(a=>a.id==model.id);
          if(null==item){
              Items.add(item);
          }else{
              item.num+=model.num;
              Calculate();
          }
   }

   public void Calculate(){
       decimal total = 0;
       foreach(var item in Items){
           total+=(item.unitPrice*item.num)
       }
       Amount = total;
   }

   public void Clear(){
        Amount =0;
        Items.Clear();
    }
}

#4


if model.Any(x => x.ProductID == yourid)
{
    model.Single(x => x.ProductID == yourid).ProductCount++;
}
else
{
    model.Add(new ShoppingCart() { ProductID = yourid, ProductCount = 1 });
}

#5


多谢各位的支持,问题已经解决,我就把分给跟我的方法相似的吧。。。

#1


list<ProductInfo> productList=new list<ProductInfo>();
productInfo product=new productInfo();

productInfo 里面包含商品的id和count 对productList遍历就可以判断是否存在。

#2


引用 1 楼 M_babyzhang 的回复:
list<ProductInfo> productList=new list<ProductInfo>();
productInfo product=new productInfo();

productInfo 里面包含商品的id和count 对productList遍历就可以判断是否存在。

正解

#3


public class ShoppingCart{
   public List<ShoppingCartModels> Items{get;set;}
   public decimal Amount{get;set;}
   public void Add(ShoppingCartModels model){
          if(Items==null)
                Items = new List<ShoppingCartModels>();
          var item = Items.FirstOrDefault(a=>a.id==model.id);
          if(null==item){
              Items.add(item);
          }else{
              item.num+=model.num;
              Calculate();
          }
   }

   public void Calculate(){
       decimal total = 0;
       foreach(var item in Items){
           total+=(item.unitPrice*item.num)
       }
       Amount = total;
   }

   public void Clear(){
        Amount =0;
        Items.Clear();
    }
}

#4


if model.Any(x => x.ProductID == yourid)
{
    model.Single(x => x.ProductID == yourid).ProductCount++;
}
else
{
    model.Add(new ShoppingCart() { ProductID = yourid, ProductCount = 1 });
}

#5


多谢各位的支持,问题已经解决,我就把分给跟我的方法相似的吧。。。