[Snippet]在C#中将List分割成多个定长的小List

经常遇到这样的需求,例如读取一个很大的文件列表,分固定线程长度执行,可以将大列表切分成小列表。然后再遍历执行。(用Task也可以)

from here

/// <summary>
/// Helper methods for the lists.
/// </summary>
public static class ListExtensions  
{
    public static List<List<T>> ChunkBy<T>(this List<T> source, int chunkSize) 
    {
        return source
            .Select((x, i) => new { Index = i, Value = x })
            .GroupBy(x => x.Index / chunkSize)
            .Select(x => x.Select(v => v.Value).ToList())
            .ToList();
    }
}

Friskit

继续阅读此作者的更多文章