Diciamo che ho un oggetto:Rimuovere 3 elementi più vecchi da un elenco <> in C#
public class CustomObj
{
DateTime Date { get; set; }
String Name { get; set; }
}
Allora diciamo che ho una lista con 20 diversi elementi.
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" }
}
Come rimuovere i 3 elementi più vecchi?
stuff.RemoveAll(item => ???)
se si scorre l'elenco per rimuovere gli elementi, assicurarsi di utilizzare un non un precursore. – jim
Se "più vecchio" è per "first in", la soluzione più semplice dovrebbe essere un approccio "first-in, first-out": utilizzare un 'Queue'. –
Ottima domanda, facile da capire il caso d'uso, e ha reso davvero facile per me come lettore trovare la risposta giusta. Grazie per avermi chiesto come hai fatto. – joelc