.Batch cleanup (#3108)

This commit is contained in:
Sun Serega 2024-08-26 09:20:27 +03:00 committed by GitHub
parent b5e674c311
commit 1ec4204fd2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -11352,9 +11352,9 @@ begin
end;
/// Разбивает последовательность на серии длины size
function Batch<T>(Self: sequence of T; size: integer): sequence of sequence of T; extensionmethod;
function Batch<T>(Self: sequence of T; size: integer): sequence of array of T; extensionmethod;
begin
var buf := new List<T>;
var buf := new List<T>(size);
foreach var elm in Self do begin
buf.Add(elm);
if buf.Count=size then begin
@ -11368,10 +11368,10 @@ begin
end;
/// Разбивает последовательность на серии длины size и применяет проекцию к каждой серии
function Batch<T, Res>(Self: sequence of T; size: integer; proj: Func<IEnumerable<T>, Res>): sequence of Res; extensionmethod;
function Batch<T, Res>(Self: sequence of T; size: integer; proj: Func<array of T, Res>): sequence of Res; extensionmethod;
begin
//Result := SeqWhile(Self, v -> v.Skip(size), v -> v.Count > 0).Select(v -> v.Take(size)).Select(ss -> proj(ss));
Result := Self.Batch(size).Select(ss -> proj(ss));
Result := Self.Batch(size).Select(proj);
end;
///--