如何从列表中删除项目并返回新列表而不在颤动中删除项目

hus*_*sky 12 list dart flutter

我有一个字符串列表,因为List<String> temp = ['a', 'b', 'c', 'd']; 我想修改和删除列表中的特定项目并返回没有删除项目的新列表。

例如,如果我想删除索引 2,我想要得到的是['a', 'b', 'd'] removeAt行不通的,因为它只返回删除的字符串项...

mmc*_*n20 26

您可以使用级联表示法在调用时返回列表removeAt

void main() {
  print(['a', 'b', 'c', 'd']..removeAt(2));
}
Run Code Online (Sandbox Code Playgroud)


Jai*_*tiz 7

temp.removeAt(index);正是您想要的。

void main() {
  List<String> temp = ['a', 'b', 'c', 'd'];
  temp.removeAt(2);
  print(temp);
}
Run Code Online (Sandbox Code Playgroud)

这个函数打印出['a', 'b', 'd']你想要得到的正确结果是什么?

但如果你也可以用这个得到删除的值。

void main() {
  List<String> temp = ['a', 'b', 'c', 'd'];
  var removedValue = temp.removeAt(2);
  print(removedValue);
}
Run Code Online (Sandbox Code Playgroud)

如果您想要获得原始列表的克隆但没有元素,您可以像这样创建一个新列表。

  void main() {
  List<String> temp = ['a', 'b', 'c', 'd'];
  int indexToRemove = 2;
  List newList = temp.where((x) => temp.indexOf(x) != indexToRemove).toList();
  print(newList);
}
Run Code Online (Sandbox Code Playgroud)