假设我有一个对象:
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 => ???)
最佳答案
如果您只需要枚举项目,这将起作用:
stuff.OrderBy(item => item.Date).Skip(3);
如果你真的想要它的列表形式,你必须在之后调用 .ToList()
:
stuff = stuff.OrderBy(item => item.Date).Skip(3).ToList();
关于c# - 从 C# 中的 List<> 中删除 3 个最旧的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1695671/