/// <summary> /// 将样本集划分为两个子集 /// </summary> /// <param name="ratioOfFirstGroup">第一个子集的占比</param> /// <param name="ratioOfSecondGroup">第二个子集的占比</param> /// <param name="method">切分方法</param> /// <param name="firstGroup">第一个子集</param> /// <param name="secondGroup">第二个子集</param> public void DivideIntoTwo(int ratioOfFirstGroup, int ratioOfSecondGroup, CollectionDividingMethod method, out SampleCollection firstGroup, out SampleCollection secondGroup) { this.DivideByRatioAndMethod(ratioOfFirstGroup, ratioOfSecondGroup, method, out List <Sample> samples1, out List <Sample> samples2); firstGroup = new SampleCollection(samples1); secondGroup = new SampleCollection(samples2); }
/// <summary> /// 将一个集合分割为两个集合 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="collection"></param> /// <param name="method">分割方法</param> /// <param name="ratioOfFirstGroup">一个整数, 第一个集合占的比例</param> /// <param name="ratioOfSecondGroup">一个整数, 第二个集合占的比例</param> /// <returns></returns> public static (List <T> firstGroup, List <T> secondGroup) DivideByRatioAndMethod <T>(this ICollection <T> collection, CollectionDividingMethod method, int ratioOfFirstGroup, int ratioOfSecondGroup) {
/// <summary> /// 将一个集合分割为两个集合 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="collection"></param> /// <param name="ratioOfFirstGroup">一个整数, 第一个集合占的比例</param> /// <param name="ratioOfSecondGroup">一个整数, 第二个集合占的比例</param> /// <param name="method">分割方法</param> /// <param name="firstGroup">第一个集合</param> /// <param name="secondGroup">第二个集合</param> /// <remarks> /// Returning IList is bad design, so this is not recommended in net40+, use tuple-returning instead. /// </remarks> public static void DivideByRatioAndMethod <T>(this ICollection <T> collection, int ratioOfFirstGroup, int ratioOfSecondGroup, CollectionDividingMethod method, out IList <T> firstGroup, out IList <T> secondGroup) => //List<T> first = new(), second = new(); //divide(collection, method, ratioOfFirstGroup, ratioOfSecondGroup, first, second); //firstGroup = first; //secondGroup = second; (firstGroup, secondGroup) = DivideByRatioAndMethod(collection, method, ratioOfFirstGroup, ratioOfSecondGroup);