Трепетание — замена элемента в списке

#flutter #dart

#флаттер #дротик

Вопрос:

У меня есть этот список int , длина которого равна 3

Это список:

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

И я хочу заменить индекс 2 таким образом, чтобы он был равен 4

Я пробовал это :

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

Но он не работает, по какой-то причине он не удаляет его из списка, но добавляет в список.

Ответ №1:

Если вы знаете индекс элемента, который хотите заменить, вам не нужно удалять существующий элемент из списка. Вы можете назначить новый элемент по индексу.

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

Комментарии:

1. после 5 лет программирования я забыл некоторые основы XD. Спасибо.

2. @evals мы все пришли к одному и тому же выводу xD

Ответ №2:

Вы можете сделать это:

 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,
  ));
  

Если вы хотите удалить элемент с помощью индекса, вы можете использовать метод RemoveAt():

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

Комментарии:

1. и как бы вы это сделали, если список динамический, и вы не знаете количество, а знаете только индекс, который хотите заменить

2. Вы можете использовать метод RemoveAt() в списке и передать ему индекс. Я обновил свой ответ