LINQ in sets of

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();
    }
}