Diese generische Methode zerteilt eine Liste in mehrere Listen.
Bsp:
Übergeben wird eine Liste mit 91000 Einträgen:
var myList = new List<string>();
for (int i = 0; i < 91000; i++)
{
myList.Add(i.ToString());
}
var chunks = SplitList(myList, 40000);
Rückgabewert ist:
Liste1 mit 40000 Einträgen
Liste2 mit 40000 Einträgen
Liste3 mit 11000 Einträgen
/// <summary>
/// Splitting a generic list into multiple lits
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="list">List to split</param>
/// <param name="chunkSize">maximal size of items per list</param>
/// <returns></returns>
public static List<List<T>> SplitList<T>(List<T> list, int chunkSize)
{
var returnList = new List<List<T>>();
var index = 0;
while (index < list.Count)
{
var count = list.Count - index > chunkSize ? chunkSize : list.Count - index;
returnList.Add(list.GetRange(index, count));
index += chunkSize;
}
return returnList;
}
Kommentare zum Snippet