分组通用方法
Posted zhuwansu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分组通用方法相关的知识,希望对你有一定的参考价值。
public class GroupHelper { public class ListGroup { public static List<List<object>> Group(List<object> source, Func<List<object>, bool> limitFunc) { return Group<object>(source, limitFunc); } /// <summary> /// 分组 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="source">源</param> /// <param name="limitFunc">项限制</param> /// <returns></returns> public static List<List<T>> Group<T>(List<T> source, Func<List<T>, bool> limitFunc) { var remainder = source.ToList(); var result = new List<List<T>>(); List<T> resItem = null; foreach (var item in source.Except(remainder)) { remainder.Add(item); if (resItem == null) { resItem = new List<T> { item }; } resItem.Add(item); resItem = resItem.Distinct().ToList(); if (!limitFunc(resItem.ToList())) { resItem.Remove(item); result.Add(resItem); } } if (resItem != null) { result.Add(resItem); } return result; } } }
以上是关于分组通用方法的主要内容,如果未能解决你的问题,请参考以下文章