如何检查地图列表是否包含目标值
例如,我有这个模型类:
class Data {
List<Group>? data;
Data({this.data});
}
class Group {
int? id;
List<Weapon>? weaponItems;
String? groupName;
Group({
this.id,
this.weaponItems,
this.groupName,
});
}
class Weapon {
int? id;
String? name;
Weapon({this.id, this.name});
}
Run Code Online (Sandbox Code Playgroud)
从包含嵌套列表的模型:
数据 => 组 => 武器
或者查看下面的变量以查看名为的结构的详细信息mainData
final Data mainData = Data(
data: [
Group(
id: 1,
groupName: 'Assault Riffle',
weaponItems: [
Weapon(id: 1, name: 'Ak47'),
Weapon(id: 2, name: 'M4'),
],
),
Group(
id: 2,
groupName: 'SMG',
weaponItems: [
Weapon(id: 3, name: 'MP5'),
Weapon(id: 4, name: 'Dual UZI'),
],
),
],
);
Run Code Online (Sandbox Code Playgroud)
然后我有一个字符串变量(目标值)
String myWeapon = 'Dual Uzi';
Run Code Online (Sandbox Code Playgroud)
如何检查是否mainData
包含“Dual UZI” myWeapon
?还有其他比使用更有效的方法吗For Loop
?
您可以使用该any
功能来检查是否存在具有某种质量的东西。对于你的例子,这可能是
bool hasMyWeapon = mainData.data?.any((group) => group.weaponItems?.any((weapon) => weapon.name == myWeapon) ?? false) ?? false;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
498 次 |
最近记录: |