Powiedzmy mam obiektu:Usuń 3 najstarsze elementy z listy <> w C#
public class CustomObj
{
DateTime Date { get; set; }
String Name { get; set; }
}
Wtedy powiedzmy mam listę z 20 różnych elementów.
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" }
}
Jak mogę usunąć 3 najstarsze elementy?
stuff.RemoveAll(item => ???)
jeśli przeglądasz listę, aby usunąć elementy, upewnij się, że używasz nie foreeach. – jim
Jeśli "najstarszy" jest dla "pierwszego w", najprostszym rozwiązaniem powinno być podejście "pierwsze przyszło, pierwsze wyszło": użyj 'Kolejki'. –
Doskonałe pytanie, łatwy do zrozumienia przypadek użycia i bardzo ułatwiłem mi jako czytelnikowi znalezienie właściwej odpowiedzi. Dziękuję za pytanie, jak to zrobiłeś. – joelc