我是新手,需要帮助:
我已经有
final List<Genres> genres = [{1,"comedy"}, {2,"drama"},{3,"horror"}]
来自api。
class Genres {
final int id;
final String value;
Genres({this.id,this.value});
}
在另一种方法中,我得到genres.id。(2)如何将其转换为genres.value(“戏剧”)?
最佳答案
当您的数据结构是Genre
时,从id
获取List
是不方便的。您别无选择,只能遍历列表并将id
值与列表中每个元素的id
进行比较:
final id = 2;
final genre = genres.firstWhere((g) => g.id == id, orElse: () => null);
这段代码的问题在于它运行缓慢,并且可能有多个匹配项(其中第一次找到之后的重复项将被忽略)。
更好的方法是在首次创建列表时将其转换为
Map
。之后,您只需使用索引器即可快速,安全地获取ID的Genre
。final genresMap = Map.fromIterable(genres, (item) => item.id, (item) => item);
// later...
final id = 2;
final genre = genresMap[id];
这样,保证不会有任何重复,并且如果ID不存在,则索引器将仅返回null。
关于flutter - 如何转换List <Object> flutter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60397955/