从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。是否有一个简单的方法来做到这一点,从这个属性我使用?

从ObservableCollection< list >中删除列表项由DateTime决定

虽然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);
}