Flutter 如何将列表更改为小写?在for循环中不断获取错误

Flutter 如何将列表更改为小写?在for循环中不断获取错误,flutter,dart,Flutter,Dart,这是我做练习的代码。我想把打印的颜色改成小写,以确保不会有任何错误。但是现在我在for循环中遇到了一个错误“for循环中使用的类型化字符串必须实现iterable dart”。帮忙 void main(){ ResistorColorDuo obj=新的ResistorColorDuo(); result(['Orange','Black']);//我想要一些能使这些颜色小写的东西,这样如果有人用大写字母键入,就不会出错 } 类阻色剂{ 静态常量颜色代码=[ ‘黑色’、‘棕色’、‘红色’、‘橙色

这是我做练习的代码。我想把打印的颜色改成小写,以确保不会有任何错误。但是现在我在for循环中遇到了一个错误“for循环中使用的类型化字符串必须实现iterable dart”。帮忙

void main(){
ResistorColorDuo obj=新的ResistorColorDuo();
result(['Orange','Black']);//我想要一些能使这些颜色小写的东西,这样如果有人用大写字母键入,就不会出错
}
类阻色剂{
静态常量颜色代码=[
‘黑色’、‘棕色’、‘红色’、‘橙色’、‘黄色’、‘绿色’、‘蓝色’、‘紫色’、‘灰色’、‘白色’、】;
作废结果(列出给定颜色){
字符串数=“”;
for(givenColors.toString().toLowerCase()中的var color){//但这会引发一个错误“for循环中使用的类型字符串必须实现iterable dart”
数字=数字+颜色代码.indexOf(COLOR).toString();
}
如果(给定颜色长度!=2)
打印('错误:您应该正好提供两种颜色');
其他的
打印(int.parse(数字));
}
}
以下是答案。 您的错误出现在这里
givenColors.toString().toLowerCase()
givenColors()
是一个列表,无法将列表转换为字符串,因为您在for循环中给出。在下面的代码中,我们从列表中获取一个值,然后转换为小写

此行
color.toLowerCase()
将值转换为小写,因为
color
包含每个迭代列表中的单个值

更新代码

void main(){
ResistorColorDuo obj=新的ResistorColorDuo();
result(['Orange','Black']);//我想要一些能使这些颜色小写的东西,这样如果有人用大写字母键入,就不会出错
}
类阻色剂{
静态常量颜色代码=[
‘黑色’、‘棕色’、‘红色’、‘橙色’、‘黄色’、‘绿色’、‘蓝色’、‘紫色’、‘灰色’、‘白色’、】;
作废结果(列出给定颜色){
字符串数=“”;
for(givenColors中的var color){//但这会引发一个错误“for循环中使用的类型字符串必须实现iterable dart”
numbers=numbers+COLOR_code.indexOf(COLOR.toLowerCase()).toString();
}
如果(给定颜色长度!=2)
打印('错误:您应该正好提供两种颜色');
其他的
打印(int.parse(数字));
}
}
givenColors.toString()
将列表转换为字符串;所以它不能被迭代

你可以采取的解决方案很少

List colorsLowercase = [];
for (var color in givenColors) {
  colorsLowercase.add(color.toLowerCase())
  ...
}
或者像@pskink建议的那样

givenColors.map((c) => c.toLowerCase())

givenColors.map((c)=>c.toLowerCase())
List colorsLowercase = [];
for (var color in givenColors) {
  colorsLowercase.add(color.toLowerCase())
  ...
}
givenColors.map((c) => c.toLowerCase())