从DateTime </list>确定的ObservableCollection <list>中删除列表项

时间:2014-05-21 15:23:33

标签: c# datetime windows-phone-8 windows-phone observablecollection

我的应用程序中有一个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。在我使用的这个属性中有一种简单的方法吗?

1 个答案:

答案 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);
}