泛型的使用--分割店铺、商品

    public class PinDuoDuoDissectItemHelper
    {
        /// <summary>
        /// 将集合按拆分数量拆分成若干个集合
        /// </summary>
        /// <param name="list"></param>
        /// <param name="SplitNum"></param>
        /// <returns></returns>

        public static List<List<T>> SplitList<T>(List<T> list, int SplitNum)
        {
            //复制一个副本
            var listCopy = list.ToArray().ToList();
            List<List<T>> list_out = new List<List<T>>();
            while (listCopy.Count > 0)
            {
                int count = Math.Min(listCopy.Count, SplitNum);
                var list_in = listCopy.GetRange(0, count);
                listCopy.RemoveRange(0, count);
                list_out.Add(list_in);
            }
            return list_out;

        }
        // 将商品按店铺分组存放
        public static Dictionary<PinDuoDuoMall, List<PinDuoDuoDissectItem>> GetMallItems(List<PinDuoDuoDissectItem> itemList)
        {
            // 将商品按店铺分组存放到dicMallItem中
            Dictionary<PinDuoDuoMall, List<PinDuoDuoDissectItem>> dicMallItem = new Dictionary<PinDuoDuoMall, List<PinDuoDuoDissectItem>>();
            foreach (var item in itemList)
            {
                var mall = item.BelongMall;
                if (!dicMallItem.ContainsKey(mall))
                    dicMallItem.Add(mall, new List<PinDuoDuoDissectItem>());
                dicMallItem[mall].Add(item);
            }
            return dicMallItem;
        }

    }

  调用 :

foreach (var mallItems in dicMallItems)
                {
                    var mall = mallItems.Key;
                    var itemList1 = mallItems.Value;
                    // 将商品20个分一组 拆分成多个集合
                    var items = PinDuoDuoDissectItemHelper.SplitList(itemList1, 20);
                    // 后面的代码
                }

 

posted @ 2022-04-10 12:12  普天2022  阅读(33)  评论(0编辑  收藏  举报