Почему Java + +, - =, * =, / = составные операторы присваивания не требуют приведения?

Вам не нужно писать код. Используйте MoreLINQ Пакетный метод, который поставляет исходную последовательность в размерные ведра (MoreLINQ доступен в виде пакета NuGet, который вы можете установить):

int size = 10;
var batches = sequence.Batch(size);

Что реализовано как:

public static IEnumerable> Batch(
                  this IEnumerable source, int size)
{
    TSource[] bucket = null;
    var count = 0;

    foreach (var item in source)
    {
        if (bucket == null)
            bucket = new TSource[size];

        bucket[count++] = item;
        if (count != size)
            continue;

        yield return bucket;

        bucket = null;
        count = 0;
    }

    if (bucket != null && count > 0)
        yield return bucket.Take(count);
}

3514
задан GMachado 11 September 2018 в 07:37
поделиться