Удалить количество строк из списка - PullRequest
0 голосов
/ 03 ноября 2018

Как удалить последние две строки из списка.

В настоящее время я удаляю 2 строки вручную, как показано ниже. Однако может быть случай, когда мне нужно определить количество удаляемых строк как n. Таким образом, он удалит n количество строк в нижней части списка. Как я могу сделать это изменение?

rows.RemoveAt(rows.Count - 1);
rows.RemoveAt(rows.Count - 2);

Ответы [ 3 ]

0 голосов
/ 03 ноября 2018

Вы можете использовать RemoveRange:

rows.RemoveRange(rows.Count - n, n);
0 голосов
/ 03 ноября 2018

Как сказал Спендер, в вашем коде есть потенциальная проблема. Я называю это «условием гонки по индексу». После удаления последнего элемента что-то еще становится новым последним элементом. Это то, на что вы должны обратить внимание с помощью индексированных коллекций. Коллекции Кейда от этого не страдают.

В дополнение к тому, что другие говорили об использовании «RemoveRange» (если доступно) или LINQ, существует также вероятность того, что вы получили неправильный тип коллекции.

Очередь [T] и Stack [T] являются специализированными коллекциями для случаев «первым пришел», «первым вышел», «первым вышел», соответственно.

0 голосов
/ 03 ноября 2018

Вы можете использовать LINQ:

rows = rows.Take(rows.Count - n).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...