如何通过ID列表筛选类实例列表元素并生成指定格式的List<String>
Dart代码调整方案
核心修改点
- 修正类属性访问逻辑:Dart中类实例属性不能用下标
e['i']访问,改用点语法访问id属性e.id - 筛选后追加映射操作:调用
map()方法将筛选得到的MyClass实例转换为对应的name字符串,最终转成List<String>类型 - 修正
name字段生成逻辑:去掉赋值时多余的大括号,匹配预期输出格式
修复后完整代码
class MyClass { late int id; late String name; MyClass({required this.id, required this.name}); } List<MyClass> mcList = []; void main() { List<int> list = [2,4,5]; for(var i in [1,2,3,4,5]) { MyClass mc = MyClass(id: i, name: '$i name'); mcList.add(mc); } List<String> result = mcList.where((e) => list.contains(e.id)).map((e) => e.name).toList(); print(result); }
运行输出
[2 name, 4 name, 5 name]
内容的提问来源于stack exchange,提问作者Dmitry Bubnenkov
相关产品推荐
相关产品推荐

