我的应用程序中有一个List,它是在MVVM light MainViewModel中生成的,它的属性是“Daylist”,我也从它获得_daylist,但我想删除一些比DateTime更旧的特定列表项。现在。让我这样说:列表给我几小时,如12:00,15:00,18:00,但现在是17:00,所以我想删除生成的列表中比DateTime.Now更早的所有条目。< / p>
这是我用来获取列表的属性:
/// <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(“Time”),它包含日期和时间,如21-05-2014 12:00,依此类推。我只需要一种方法来返回没有已经传递的项目的项目列表。
我只是不知道如何单独访问每个项目并检查其值是否为&lt; = DateTime.Now。在我使用的这个属性中有一种简单的方法吗?
答案 0 :(得分:1)
虽然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);
}