在 Dart 中,如果你需要批量修改列表(List)中的多个元素

在 Dart 中,如果你需要批量修改列表(List)中的多个元素,可以通过以下几种方式实现:

1. 使用 replaceRange 方法

replaceRange 允许你替换列表中指定范围内的元素。

语法

dart

void replaceRange(int start, int end, Iterable<E> newContents);

  • start:替换的起始索引(包含)。
  • end:替换的结束索引(不包含)。
  • newContents:用于替换的新元素集合(可以是列表、集合等)。

示例

dart

void main() { List<int> numbers = [1, 2, 3, 4, 5]; print('修改前: $numbers'); // 输出: [1, 2, 3, 4, 5] // 替换索引 1 到 3 的元素(不包含 3) numbers.replaceRange(1, 3, [20, 30]); print('修改后: $numbers'); // 输出: [1, 20, 30, 4, 5]}

2. 使用 setAll 方法

setAll 允许你通过索引批量设置元素,适用于已知索引位置的情况。

语法

dart

void setAll(int index, Iterable<E> iterable);

  • index:起始插入位置。
  • iterable:要插入的元素集合。

示例

dart

void main() { List<String> letters = ['a', 'b', 'c', 'd']; print('修改前: $letters'); // 输出: [a, b, c, d] // 从索引 1 开始,替换为 ['x', 'y', 'z'] letters.setAll(1, ['x', 'y', 'z']); print('修改后: $letters'); // 输出: [a, x, y, z]}

3. 使用扩展运算符(Spread Operator)

通过 ... 扩展运算符,可以合并多个列表或修改部分内容(Dart 2.3+)。

jrhz.info

示例

dart

void main() { List<int> numbers = [1, 2, 3, 4, 5]; print('修改前: $numbers'); // 输出: [1, 2, 3, 4, 5] // 替换索引 1 到 3 的元素 numbers = [ numbers[0], ...?[20, 30], // 展开新元素 ...numbers.sublist(3), // 保留剩余元素 ]; print('修改后: $numbers'); // 输出: [1, 20, 30, 4, 5]}

4. 直接遍历修改

如果需要基于条件批量修改,可以通过遍历列表实现。

示例:将所有偶数乘以 2

dart

void main() { List<int> numbers = [1, 2, 3, 4, 5]; print('修改前: $numbers'); // 输出: [1, 2, 3, 4, 5] for (int i = 0; i < numbers.length; i++) { if (numbers[i] % 2 == 0) { numbers[i] *= 2; // 偶数乘以 2 } } print('修改后: $numbers'); // 输出: [1, 4, 3, 8, 5]}

总结

  • replaceRange:适合替换连续范围的元素。
  • setAll:适合从指定索引开始插入新元素。
  • 扩展运算符:适合复杂合并或条件性修改。
  • 遍历修改:适合基于条件的批量操作。

根据具体需求选择合适的方法!

特别声明:[在 Dart 中,如果你需要批量修改列表(List)中的多个元素] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

225组讯&amp;资讯 | 古装剧《京洛再无佳人》、古装剧《神仙肉》、古装中剧《宝珠》等(组讯2021)

免责声明:戏客Seeker公众号(“本平台”)中全网组讯的信息、内容(“组讯信息”,包括但不限于影视项目名称、项目介绍信息、出品公司信息、导演信息、选角团队信息、拍摄相关信息、联系方式等)均来源于内容信息相…

225组讯&amp;资讯 | 古装剧《<strong>京洛再无佳人</strong>》、古装剧《<strong>神仙肉</strong>》、古装中剧《<strong>宝珠</strong>》等(组讯2021)

揭晓 | 2025年葡萄牙若昂·塔博达国际摄影大赛(单色组)获奖公布(葡萄牙申办2032年奥运会)

由中国摄影网选送的摄影师于仲安的作品《三角之境》获得单色开放组的PSA铜牌🥉,《三角气势》获得彩色开放组的ISF勋带奖,另外作品《U形建筑》《暖光下的女人》《美妙的建筑》入围彩色开放组,《未来构造》《专注》《

揭晓 | 2025年葡萄牙若昂·塔博达国际摄影大赛(单色组)获奖公布(葡萄牙申办2032年奥运会)

ESG不是加分项,而是新财报语言——上国会EMBA前沿模块深度观察(epq加分)

ESG不是锦上添花!为什么顶尖企业已把它当“新财报语言”在用?ESG,新财报语言,上国会EMBA,可持续发展,企业价值重构还在把ESG当成CSR部门的PPT装饰?错!全球MSCI、标普已将ESG指标纳入信用评级模型;A股超420

ESG不是加分项,而是新财报语言——上国会EMBA前沿模块深度观察(epq加分)

『孙俪』《辣妈正传》糖果色造型白到发光,明道前男友太稳,元宝真不如他大气(辣妈『孙俪』剧照)

前期,他那股热乎劲儿,简直就像是把心掏出来捧给你看,但到后期,却变得冷得像冰窖一般,变化实在太大了,让人心里直堵得慌,忍不住想知道,究竟是怎么回事。那时候,我们可能更注重演员长得好不好看,哪个角色更讨喜,纠结…

『孙俪』《<strong>辣妈正传</strong>》糖果色造型白到发光,明道前男友太稳,元宝真不如他大气(辣妈『孙俪』剧照)

冯小刚19岁养女越长越漂亮,网友称:长的不就是一个模型刻出来的(冯小刚19岁养女改姓的具体原因是什么?)

通常,冯小刚和徐帆几乎总是携手同框,带着养女一同参加各类活动,展现出温馨的家庭形象,给人留下了深刻的印象。关于她的过去,有传闻称,她在年仅2岁时便被冯小刚和徐帆收养,之后便在北京的国际学校接受教育,随后又远赴…

冯小刚19岁养女越长越漂亮,网友称:长的不就是一个模型刻出来的(冯小刚19岁养女改姓的具体原因是什么?)