Liste der Tupel in Flattern / Dart
Ich möchte eine Liste von Tupeln in Dart / Flatter haben, sie durchlaufen und die erste und zweite Variable lesen. Es gibt ein pub.dev-Paket , das ein Tupel im Flattern erzeugt. Gibt es einen anderen Weg im Dart? Muss ich eine Klasse verwenden, um ein Tupel zu erstellen, wie es das Flatterpaket tut?
Ich fing an, ein Beispiel in Dart Pad zu erstellen
void main() {
List testList = [("a",1),("b",2),("c",3),("d",4),("e",5)];
for (var i = 0; i < 5; i++) {
print('hello $i');
currentItem = testList[i];
}
}
Antworten
Beispiel dafür, wie Sie mithilfe einer Mapas-Datenstruktur über Ihre Datenpaare iterieren können :
void main() {
final testMap = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5};
for (final mapEntry in testMap.entries) {
final key = mapEntry.key;
final value = mapEntry.value;
print('Key: $key, Value: $value');
// Key: a, Value: 1
// Key: b, Value: 2
// Key: c, Value: 3
// Key: d, Value: 4
// Key: e, Value: 5
}
}
Sie können auch ganz einfach Ihre eigene PairKlasse einführen , mit der Sie zwei Objekte miteinander verbinden können:
class Pair<T1, T2> {
final T1 a;
final T2 b;
Pair(this.a, this.b);
}
void main() {
final testList = [
Pair("a", 1),
Pair("b", 2),
Pair("c", 3),
Pair("d", 4),
Pair("e", 5)
];
for (final pair in testList) {
print('${pair.a} -> ${pair.b}');
}
// a -> 1
// b -> 2
// c -> 3
// d -> 4
// e -> 5
}
In den meisten Fällen empfehle ich Ihnen, einen classspeziellen Bedarf für Sie zu erstellen, da dies die Erstellung typsicherer Codes erleichtert.
Wenn Sie verwenden möchten package:tuple, können Sie Folgendes tun:
void main() {
var testList = <Tuple2<String, int>>[
Tuple2("a", 1),
Tuple2("b", 2),
Tuple2("c", 3),
Tuple2("d", 4),
Tuple2("e", 5),
];
for (var tuple in testList) {
print('current tuple: (${tuple.item1}, ${tuple,item2})');
}
}