如何从Dart中的列表中获取随机元素?
如何从Dart中的集合中检索随机元素如何从Dart中的列表中获取随机元素?,dart,Dart,如何从Dart中的集合中检索随机元素 var list=['a'、'b'、'c'、'd'、'e']; 导入“省道:数学”; 变量列表=['a'、'b'、'c'、'd'、'e']; //生成一个新的随机对象 最终随机=新随机(); //根据列表长度生成随机索引 //并使用它检索元素 var元素=列表[_random.nextInt(list.length)]; 这同样有效: var list = ['a','b','c','d','e']; //this actually changes the
var list=['a'、'b'、'c'、'd'、'e'];
导入“省道:数学”;
变量列表=['a'、'b'、'c'、'd'、'e'];
//生成一个新的随机对象
最终随机=新随机();
//根据列表长度生成随机索引
//并使用它检索元素
var元素=列表[_random.nextInt(list.length)];
这同样有效:
var list = ['a','b','c','d','e'];
//this actually changes the order of all of the elements in the list
//randomly, then returns the first element of the new list
var randomItem = (list..shuffle()).first;
或者,如果不想弄乱列表,请创建副本:
var randomItem = (list.toList()..shuffle()).first;
你可以使用这个软件包来帮助你
import'包:dart_random_choice/dart_random_choice.dart';
变量列表=['a'、'b'、'c'、'd'、'e'];
var el=随机选择(列表);
我刚刚为列表创建了一个扩展方法
import 'dart:math';
extension RandomListItem<T> on List<T> {
T randomItem() {
return this[Random().nextInt(length)];
}
}
例如:
Scaffold(
body: SafeArea(
child: isItLogin
? Lottie.asset('assets/lottie/53888-login-icon.json')
: Lottie.asset(LottieAssets.loadingAssets.randomItem()),
),
);
这不会弄乱整个列表?是的,@GabrielDeOliveiraRohden,这实际上会随机更改列表中所有元素的顺序,然后返回新列表的第一个元素。@Mason所以这会对原始列表产生影响,而不会生成新的列表。。洗牌后要处理的副作用很好:DinDect,我编辑了答案,添加了一种方法,如果需要的话,可以不弄乱原始列表,这取决于你想要什么。
List.randomItem()
Scaffold(
body: SafeArea(
child: isItLogin
? Lottie.asset('assets/lottie/53888-login-icon.json')
: Lottie.asset(LottieAssets.loadingAssets.randomItem()),
),
);