我有以下方法:
List<DropdownMenuItem<String>> _buildGitIgnoreTemplateItems() {
var _dropDownMenuItems = List<DropdownMenuItem<String>>();
_gitIgnoreTemplateNames.forEach((templateName) {
_dropDownMenuItems.add(DropdownMenuItem(
child: Text(templateName),
value: templateName,
));
});
return _dropDownMenuItems;
}
我正在尝试实现的是删除变量
_dropDownMenuItems
,例如:List<DropdownMenuItem<String>> _buildGitIgnoreTemplateItems() {
_gitIgnoreTemplateNames.forEach((templateName) {
**yield return** DropdownMenuItem(
child: Text(templateName),
value: templateName,
);
});
}
您可以看到其他语言的类似实现,例如:C#
最佳答案
C#太早了,但是看起来像Synchronous generators
Iterable<DropdownMenuItem<String>> _buildGitIgnoreTemplateItems() sync* {
for(var templateName in _gitIgnoreTemplateNames) {
yield DropdownMenuItem(
child: Text(templateName),
value: templateName,
);
}
}
但是也许你只是想要
_gitIgnoreTemplateNames.map((templateName) =>
DropdownMenuItem(
child Text(templateName),
value: templateName)
).toList()