Flutter - replacing an item in a list

Viewed 32074

I have this list of int which has a length of 3

This is the list:

List<Tamount> integer= [
 amount(amount: 2, id: '34'),
 amount(amount: 4, id: '12'),
 TotalAmount(amount: 2, id: '54'),
];

And I want to replace index 2 so the one with the amount of 4

I have tried this :

integer.isNotEmpty
  ? integer.remove(integer[1].id)
  : null;
integers.insert(1, integer(
  id: DateTime.now().toString(),
  amount:34,
));

But it is not working ,for some reason it is not removing it from the list, but it is adding to the list.

2 Answers

If you know the index of the element you want to replace, you don't need to remove existing element from the List. You can assign the new element by index.

  integer[1] = amount(amount: 5, id: 'new_id');

You can do this:

integer.isNotEmpty
  ? integer.removeWhere((item)=>item.amount == 4) //removes the item where the amount is 4
  : null;
integers.insert(
  1,
  amount(
    id: DateTime.now().toString(),
    amount:34,
  ));

If you want to remove an item by using the index, you can use removeAt() method:

integer.isNotEmpty
  ? integer.removeAt(1) //removes the item at index 1
  : null;
integers.insert(
  1,
  amount(
    id: DateTime.now().toString(),
    amount:34,
  ));
Related