泛型的使用--分割店铺、商品
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); // 后面的代码 }