Une carte permet de rechercher des valeurs par clé. Donc :
print(_results["Key_1"]); // prints "Value_1"
Une carte n'est pas une liste de paires, vous ne pouvez pas y accéder par index.
Vous puede accéder aux clés, aux valeurs et aux entrées (paires de clés et de valeurs) en tant que Iterable
s .
for (var key in _results.keys) print(key); // prints Key_1 then Key_2
for (var value in _results.values) print(value); // prints Value_1 then Value_2
for (var entry in _results.entries) {
print(entry.key);
print(entry.value);
}
Vous pouvez même convertir les entrées en une liste si vous voulez vraiment indexer par nombre entier :
var entryList = _results.entries.toList();
print(entryList[0].key); // prints "Key_1"
Pourtant, ce n'est pas pour cela que les cartes sont conçues et optimisées. Le littéral de la map que vous avez écrit va itérer les entrées, et leurs clés et valeurs, dans l'ordre où elles apparaissent dans la source, mais toutes les maps ne garantissent pas cela. Si vous avez réellement besoin d'une liste de paires de chaînes de caractères, je vous recommanderais de créer vos données de cette manière dès le début, au lieu d'utiliser une carte. Ce sera très probablement plus efficace, et peut-être plus facile à lire.