Допустим, у меня есть объект:Удалить 3 старые элементы из List <> в C#
public class CustomObj
{
DateTime Date { get; set; }
String Name { get; set; }
}
Тогда давайте говорить, у меня есть список с 20 различных элементов.
var stuff = new List<CustomObj>
{
{ Date = DateTime.Now, Name = "Joe" },
{ Date = DateTime.Now.AddDays(1), Name = "Joe2" },
{ Date = DateTime.Now.AddDays(2), Name = "Joe3" },
{ Date = DateTime.Now.AddDays(3), Name = "Joe4" },
{ Date = DateTime.Now.AddDays(4), Name = "Joe5" },
{ Date = DateTime.Now.AddDays(5), Name = "Joe6" },
{ Date = DateTime.Now.AddDays(6), Name = "Joe7" },
{ Date = DateTime.Now.AddDays(7), Name = "Joe8" },
{ Date = DateTime.Now.AddDays(8), Name = "Joe9" },
{ Date = DateTime.Now.AddDays(9), Name = "Joe10" },
{ Date = DateTime.Now.AddDays(10), Name = "Joe11" }
}
Как удалить 3 самых старых элемента?
stuff.RemoveAll(item => ???)
если вы перебираете список для удаления предметов, убедитесь, что вы используете для и а не предсказание. – jim
Если «oldest» для «first in», самым простым решением должен быть подход «первый-в-первом»: используйте «Queue». –
Отличный вопрос, простой для понимания вариант использования, и сделал это очень легко для меня, как читателя, чтобы найти правильный ответ. Спасибо, что спросили, как вы это делали. – joelc