刪除最舊的3個元素比方說,我有一個對象:從列表<>在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 => ???)
如果你迭代列表來刪除項目,確保你使用for和不是一個foreeach。 – jim 2009-11-08 07:49:16
如果「最老」是「先入」,最簡單的解決方案應該是「先進先出」方法:使用「隊列」。 – 2013-06-11 14:35:51
優秀的問題,易於理解的用例,使我作爲讀者很容易找到正確的答案。感謝您問的問題。 – joelc 2015-11-01 21:42:17