Flutter 如何转换列表颤振

Flutter 如何转换列表颤振,flutter,dart,Flutter,Dart,我是颤振新手,需要帮助: 我已经有了 final List<Genres> genres = [{1,"comedy"}, {2,"drama"},{3,"horror"}] 在另一种方法中,我获取了genres.id.2,我如何将其转换为genres.value戏剧?您可以迭代api的json结果,并将它们映射到Gener类,如下所示 无效fnid{ final genr=genrs.firstWheregener=>genr['id']==id; //现在您可以访问gener

我是颤振新手,需要帮助:

我已经有了

final List<Genres> genres = [{1,"comedy"}, {2,"drama"},{3,"horror"}]

在另一种方法中,我获取了genres.id.2,我如何将其转换为genres.value戏剧?

您可以迭代api的json结果,并将它们映射到Gener类,如下所示

无效fnid{ final genr=genrs.firstWheregener=>genr['id']==id; //现在您可以访问gener }
您可以在列表中找到如下项目

Genres element = list.firstWhere((element) => element.id == 2); // 2 being the id you give in the question as an exaple. You should make it dynamic
print(element.value);
当您的数据结构是一个列表时,从id获取流派是不方便的。您别无选择,只能遍历列表并将id值与列表中每个元素的id进行比较:

最终id=2; final genre=genres.firstWhereg=>g.id==id,orElse:=>null; 这段代码的问题是速度慢,可能会有多个匹配项,第一次找到后的重复项将被忽略

更好的方法是在您第一次创建列表时将其转换为地图。之后,您可以简单地使用索引器快速、安全地获取ID的类型

final genresMap=Map.fromIterablegenres,item=>item.id,item=>item; //后来。。。 最终id=2; 最终类型=genresMap[id];
这样,就保证不会有任何重复,如果ID不存在,那么索引器只会返回null。

Hi!请添加您正在尝试执行的操作的更多详细信息。另外,每当你添加代码时,请使用格式化功能,这样它更易于阅读。你想要什么还不是很清楚。尝试添加一个示例,说明您希望生成的数据是什么样子。谢谢,但我解释得不太清楚。我更正了它,你在一个方法中得到id,在这个方法中你想得到genr的值吗@sk784您能投票/接受答案吗@sk784,谢谢,祝您愉快
Genres element = list.firstWhere((element) => element.id == 2); // 2 being the id you give in the question as an exaple. You should make it dynamic
print(element.value);