dart - 在索引 0 处插入新对以进行映射。(飞镖)
问题描述
我要循环这张地图。所以我希望能够在这张地图中插入一对。我该怎么做?
Map<String, String> fruits = {'Apple': 'Golden', 'Orange': 'Orange'};
fruits.insert(0, {'Grape': 'Green'}); // doesn't work
print(fruits); //{Grape: Green, Apple: Golden, Orange: Orange}
解决方案
地图条目没有数字索引(Map<int, T>
当然,除非您正在使用),并且没有 Map.insert 方法。相反,将一对添加到映射的方法是将值分配给键,如下所示:
fruits['Grape'] = 'Green';
对于一些附加信息, Map 是无序的,这意味着没有索引 0 -但是,如果你真的必须有一组有序的键和值,你可以使用List<MapEntry>
:
List<MapEntry<String, String>> fruits = [
MapEntry('Apple', 'Golden'),
MapEntry('Orange', 'Orange')
];
fruits.insert(0, MapEntry('Grape', 'Green'));
print(fruits); // [MapEntry(Grape: Green), MapEntry(Apple: Golden), MapEntry(Orange: Orange)]
更好的是,您可以考虑使用 Fruit 类,然后使用List<Fruit>
:
class Fruit {
final String name;
final String color;
Fruit(this.name, this.color});
}
然后:
List<Fruit> fruits = [
Fruit('Apple', 'Golden'),
Fruit('Orange', 'Orange')
];
fruits.insert(0, Fruit('Grape', 'Green'));
print(fruits);
推荐阅读
- html - 如何使用引导程序分隔两个复选框?
- excel - 在 Excel 中的单独工作表中粘贴表格的公式
- replace - NCO:仅针对特定区域将数据从一个 netcdf 文件复制到另一个文件中
- java - 在 Java 中使用数组列表时出现堆栈溢出错误
- c# - EF Code First - 没有 FK 的导航属性
- razor - 如何在 ASP.Net Core 2 和 Razor 中创建多个单选按钮组?
- centos - Centos 6.9,如何安装gdbus-codegen?
- java - then() 方法在 REST-assured 中做了什么?
- php - Codeigniter 列出下一条和上一条记录的 ID url
- html - 我的标题不在中心