从ObservableCollection< list >中删除列表项由DateTime决定
本文关键字:列表 删除列 决定 DateTime 删除 ObservableCollection list gt | 更新日期: 2023-09-27 18:04:22
我在我的应用程序中有一个列表,它是在MVVM光MainViewModel中生成的,它的属性是"Daylist",我也从中得到一个_daylist,但我想删除一些比DateTime.Now更老的特定列表项。让我们这样说:列表给我的时间是12:00,15:00,18:00,但现在是17:00,所以我想从生成的列表中删除所有比DateTime.Now更早的条目。
这是我用来获取列表的属性:
/// <summary>
/// Sets and gets the DayList property.
/// Changes to that property's value raise the PropertyChanged event.
/// </summary>
public ObservableCollection<List> DayList
{
get
{
return _dayList;
}
set
{
if (_dayList == value)
{
return;
}
RaisePropertyChanging(DayListPropertyName);
_dayList = value;
RaisePropertyChanged(DayListPropertyName);
}
}
我得到一个包含29个项目的列表,每个项目都有一个DateTime("时间"),其中包含日期和时间,如21-05-2014 12:00等等。我只需要一种方法来返回项目列表,而不需要已经传递的项目。
我只是不知道如何分别访问每个项目,并检查其值是否为<= DateTime.Now。是否有一个简单的方法来做到这一点,从这个属性我使用?
虽然List<T>
数据类型将为您提供一行DayList.RemoveAll(x => x.Time < DateTime.Now)
,但使用ObservableCollection<T>
需要遍历一个列表:
foreach (var item in DayList.Where(x => x.Time < DateTime.Now).ToList())
{
DayList.Remove(item);
}