2023-11-09
This commit is contained in:
@@ -1467,6 +1467,37 @@ namespace BLL
|
||||
return "";
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 将List 中的数据平均拆分为多个List
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="originalList">原始List</param>
|
||||
/// <param name="numberOfLists">拆分后的子列表数量</param>
|
||||
/// <returns></returns>
|
||||
/**们首先计算出每个子列表的大小chunkSize和余数remainder。然后,使用一个循环来创建并添加子列表到splitLists中。
|
||||
|
||||
在每次迭代中,我们根据当前索引是否小于余数来确定子列表的大小。如果小于余数,则将子列表大小加1,以确保最后一个子列表包含余数部分。
|
||||
|
||||
最后,我们更新startIndex以便正确获取下一个子列表的元素范围*/
|
||||
public static List<List<T>> SplitList<T>(List<T> originalList, int numberOfLists)
|
||||
{
|
||||
List<List<T>> splitLists = new List<List<T>>();
|
||||
int chunkSize = originalList.Count / numberOfLists;
|
||||
int remainder = originalList.Count % numberOfLists;
|
||||
|
||||
int startIndex = 0;
|
||||
for (int i = 0; i < numberOfLists; i++)
|
||||
{
|
||||
int sublistSize = chunkSize + (i < remainder ? 1 : 0);
|
||||
List<T> sublist = originalList.GetRange(startIndex, sublistSize);
|
||||
splitLists.Add(sublist);
|
||||
|
||||
startIndex += sublistSize;
|
||||
}
|
||||
|
||||
return splitLists;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user