Удаление элемента списка

481
26 декабря 2016, 22:26

Каким образом можно удалить элемент списка, зная лишь его значение. Например,

List <string> names = new List<string>();
names[0]="Ivan";
names[1]="Dima";

Из этого списка нужно удалить элемент с именем Dima, не обращаясь по номеру в этом списке, зная только его имя

Answer 1

Если речь идет о строках или типах-значениях, то подойдет метод Remove

List<string> names = new List<string>(2);
names.Add("Ivan");
names.Add("Dima");
names.Remove("Dima");

Для применения его с классами, класс должен реализовать IEquatable<T>, для сравнения. В противном случае сравнение будет происходить с использованием Object.Equals, что для ссылочных типов равносильно сравнению ссылок.

Answer 2

Можно получить новый список, в котором нет элементов со значением "Dima":

names=names.Where(x=>x!="Dima").ToList()
Answer 3

Можно использовать метод Remove

names.Remove("Дима")
Answer 4
var obj = (names.FirstOrDefault(o => o == "name"));
if (obj != null)
{
    int index = names.IndexOf(obj);
    names.RemoveAt(index);
}
READ ALSO
данный ключ отсутствует в словаре

данный ключ отсутствует в словаре

Выдает ошибку "данный ключ отсутствует в словаре" при нажатии на Q,W

644
Unity. Загрузка спрайтов пользователем

Unity. Загрузка спрайтов пользователем

Возможно ли разработать приложение, которое предложит поля для загрузки собственных спрайтов пользователю? При загрузке спрайтов, они "привязываются"...

830
количество загруженных документов c#

количество загруженных документов c#

В dataGridView загружаются документы Word

329
C# Файлы, отображаемые в память

C# Файлы, отображаемые в память

Будет ли работать данная технология при передачи данных из/в приложение C# windows и Ubuntu находящейся внутри Virtual Box

483