在 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)中的多个元素] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

圣元美拉米接骨木莓维生素C营养包:家庭健康守护者(圣元美泰软骨素的功效)

圣元美拉米接骨木莓维生素C营养包为幼儿、儿童和成人提供丰富的维生素C,尤其适合过敏体质人群。本文深入解读其配方设计、营养价值、适用场景及选购指南。 通过科学配比,该营养包旨在增强免疫力、促进生『长发』育,帮助人们抵御日常小病小痛。

圣元美拉米接骨木莓维生素C营养包:家庭健康守护者(圣元美泰软骨素的功效)

母亲是著名演员,父亲上亿家产,他却跑龙套10年,他是谁?(母亲原名)

当其他星二代还在利用父母资源不断走后门,让自己可以做到近水楼台先得月时,白宇的行为狠狠的打脸了这些人。对于这两个人的做法,观众现在也已经习以为常了,因为圈内很多的『明星』️都是这样做的。 像这样的人,就算是之前通…

母亲是著名演员,父亲上亿家产,他却跑龙套10年,他是谁?(母亲原名)

中铁十五局取得钢弹簧预制板起吊运输装置专利,简化拆装工作(中铁十五局取得成孔钻机专利)

国家知识产权局信息显示,中铁十五局集团有限公司取得一项名为“一种用于钢弹簧预制板的起吊运输装置”的专利,授权公告号CN 223592243U,申请日期为2025年1月。 专利摘要显示,本实用新型公开了城市轨…

中铁十五局取得钢弹簧预制板起吊运输装置专利,简化拆装工作(中铁十五局取得成孔钻机专利)

郭碧婷素颜前往医院,花一万七为父治嗓,向佐两次赴台北探望(郭碧婷素颜照)

郭碧婷的娘家爸爸自从曝光了自己得癌的事,一直都挺受关注的,再加上向太总爱发视频聊聊亲家的私事,所以郭碧婷爸爸索性注册了个社交账号,把自己的近况分享出来,向外界证明自己还健在,在女儿陪伴下积极面对治疗,老爷子心…

郭碧婷素颜前往医院,花一万七为父治嗓,向佐两次赴台北探望(郭碧婷素颜照)

海尔波轮洗衣机:护衣防缠绕的洗衣革命(海尔波轮洗衣机使用教程视频)

洗衣液放多少?柔顺剂该加几盖?它就像一位贴心的&quot;洗衣管家&quot;,自动感知衣物重量和脏污程度,精准投放洗涤剂和柔顺剂。 3️⃣免清洗设计:告别传统投放盒发霉积垢的问题,保持系统长期清洁 &quot;以前

海尔波轮洗衣机:护衣防缠绕的洗衣革命(海尔波轮洗衣机使用教程视频)