106 votes

Comment obtenir un élément aléatoire à partir d'une liste en Dart?

Comment puis-je récupérer un élément aléatoire d'une collection en Dart?

var list = ['a','b','c','d','e'];

176voto

Nik Graf Points 2063
import "dart:math";

var list = ['a','b','c','d','e'];

// génère un nouvel objet Random
final _random = new Random();

// génère un index aléatoire basé sur la longueur de la liste
// et l'utilise pour récupérer l'élément
var element = list[_random.nextInt(list.length)];

93voto

Jerome Puttemans Points 803

Cela fonctionne également :

var list = ['a','b','c','d','e'];

// cela change en fait l'ordre de tous les éléments de la liste 
// de manière aléatoire, puis renvoie le premier élément de la nouvelle liste
var randomItem = (list..shuffle()).first;

ou si vous ne voulez pas perturber la liste, créez une copie :

var randomItem = (list.toList()..shuffle()).first;

31voto

Razi Kallayi Points 39
import "dart:math";

var liste = ['a','b','c','d','e'];

liste[Random().nextInt(liste.length)]

16voto

763 Points 1143

Je viens de créer une méthode d'extension pour List.

import 'dart:math';

extension RandomListItem on List {
  T randomItem() {
    return this[Random().nextInt(length)];
  }
}

Nous pouvons l'utiliser ainsi.

List.randomItem()

exemple :

Scaffold(
      body: SafeArea(
        child: isItLogin
            ? Lottie.asset('assets/lottie/53888-login-icon.json')
            : Lottie.asset(LottieAssets.loadingAssets.randomItem()),
      ),
    );

10voto

Kirollos Morkos Points 798

Vous pouvez utiliser le package dart_random_choice pour vous aider.

import 'package:dart_random_choice/dart_random_choice.dart';

var list = ['a','b','c','d','e'];
var el = randomChoice(list);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X