Как удалить элемент из списка и обновить его? - PullRequest
0 голосов
/ 05 марта 2020

После удаления элемента в списке возникает следующая проблема.

ID Name
-------
1 Alexandra
3 David

Как обновить список до следующей формы?

ID Name
-------
1 Alexandra
2 David
public class LicenseDataGrid { 
    public int Id { get; set; } = 0;
    public string name { get; set; } = string.Empty;
}

1 Ответ

0 голосов
/ 05 марта 2020

Как уже упоминалось в комментариях, в большинстве случаев Id не следует изменять, потому что это уникальная идентификация объекта. Но если вы имеете в виду индекс объекта , это можно сделать следующим образом:

var list = new List<LicenseDataGrid>
  { 
      new LicenseDataGrid { Id= 1, name = "A"},
      new LicenseDataGrid { Id= 2, name = "B"},
      new LicenseDataGrid { Id= 3, name = "C"}
  };

foreach (var license in list)
{
   Console.WriteLine(license.Id);
}

list.RemoveAt(1);
for (var i = 0; i < list.Count; i++) // here's magic
{
   list[i].Id = i + 1;
}

foreach (var license in list)
{
    Console.WriteLine(license.Id);
}

Вам следует обновить поле Id вручную после удаления элемента из списка. Это просто, потому что List имеет свойство Item по умолчанию, поэтому вы будете знать реальную позицию в списке для каждого элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...