Quiver (Version & gt; = 0.18) liefert partition()
als Teil seiner iterablen Bibliothek (Import 'Paket: köcher / iterables.dart '). Die Implementierung gibt lazily-computed Iterable
zurück, was sie ziemlich effizient macht. Verwenden Sie als:
Das zurückgegebene pairs
ist ein Iterable<List>
, das wie folgt aussieht:
Dies funktioniert mit Listen mit ungerader Länge:
%Vor%Vielleicht möchten Sie vielleicht einen Fehler ausgeben oder einen Füllwert angeben, wenn die Listenlänge nicht gerade ist.
Ich würde vorschlagen, ein iterables der Paare zu erstellen und .toList zu verwenden, wenn Sie es wirklich als Liste benötigen. Diese Lösung kann auch auf alle iterierbaren und nicht nur auf eine Liste angewendet werden. Erstens, eine einfache Lösung, die nur auf Listen funktioniert (mit gerader Länge) (wie die Lösung von Robert King):
%Vor%Die allgemeinere Lösung ist komplex:
%Vor%Es scheint, dass es tatsächlich einfacher ist, einen Strom von Paaren aus einem Strom zu erzeugen, als ein iterbares Paar aus einem iterierbaren zu machen.
Beeinflusst von @ Alans Antwort oben und Erweiterung der Liste , das Äquivalent von F # chunkedBySize und gefenstert und Durchschnitt könnte sein:
%Vor%Die Implementierung ist hier
zu sehenTags und Links dart