LINQ in sets of

Posted by Joe Enos on March 27, 2021 · 1 min read

Thanks to this Stackoverflow answer for showing how to easily return LINQ results in sets:

public static IEnumerable<T[]> InSetsOf<T>(this IEnumerable<T> source, int max) {
List<T> toReturn = new List<T>(max);
foreach (var item in source) {
toReturn.Add(item);
if (toReturn.Count == max) {
yield return toReturn.ToArray();
toReturn = new List<T>(max);
}
}
if (toReturn.Any()) {
yield return toReturn.ToArray();
}
}