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

猜你喜欢

『董洁』一月份直播「过年松弛感『穿搭』」,普通人也能直接抄作业(『董洁』综艺节目视频)

这种搭配方式,实际上就是将户外装备的实用性和都市审美巧妙结合,花的钱虽然不算少,但通常能穿得更久一些,也算是一种理性投入。 你看,这些搭配既有美感,又有独特的思路:有人注重方便搭配,有人追求风格鲜明;有的…

『董洁』一月份直播「过年松弛感『穿搭』」,普通人也能直接抄作业(『董洁』综艺节目视频)

李亚鹏没想到,自己辛苦养大的女儿,如今19岁给『王菲』疯狂长脸(李亚鹏携)

李嫣用自己的方式,走出了属于自己的路,证明了即使起点高,她也没有依赖父母的光环,而是靠自己活出了不一样的精彩。即便在父亲李亚鹏遭遇债务风波时,她也没有选择回避,而是坚定地为嫣然天使基金发声,展现出许多人都难以…

李亚鹏没想到,自己辛苦养大的女儿,如今19岁给『王菲』疯狂长脸(李亚鹏携)

为什么五星酒店的【香】,闻起来就比家里的显贵?(为什么五星酒店工作人员都是英文名字)

所以我们给大家把尹谜的超受欢迎的几款『香氛』都给带来了,全都是爆款香型: 无火香薰、香薰蜡烛,小杯『香氛』晶石……能把这大热款的12蜡烛谈到【99元任选三件套餐】里,这次的福利是真合适, 还在选礼物🎁的朋友们这次别错…

为什么五星酒店的【香】,闻起来就比家里的显贵?(为什么五星酒店工作人员都是英文名字)

体寒别怕 5个实用方法 快速排出体内寒气(体寒的人能用什么方法调理呢)

明明裹得严严实实,手脚还是冰凉?别人穿短袖你却裹外套🧥,稍微吃点凉的就肠胃不适?这些都是体寒在作祟。体寒虽不算大病,却会影响生活质量,让人容易疲惫、精神不佳。掌握以下五个实用方法,帮你轻松排出体内寒气,让身体由内而外暖起来

体寒别怕 5个实用方法 快速排出体内寒气(体寒的人能用什么方法调理呢)

『井柏然』女友晒38生日照,模特出身的刘雯气质特好,蛋糕疑男友做的(『井柏然』出道前女友)

当天,刘雯身穿一件棕黄色的外套🧥,内搭白色打底衫,搭配一条牛仔裤👖,整个人看起来既舒适又简约,散发着随性却又不失精致的魅力。每一张照片,似乎都在告诉我们,刘雯不仅是外表出众,内心更是幸福与美丽的。『井柏然』帅气…

『井柏然』女友晒38生日照,模特出身的刘雯气质特好,蛋糕疑男友做的(『井柏然』出道前女友)