удалить список элементов из ObservableCollection <List>, определенный DateTime

1

У меня есть список в моем приложении, которое генерируется в 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 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. Есть ли простой способ сделать это из этого свойства, которое я использую?

Теги:
datetime
observablecollection
windows-phone
windows-phone-8

1 ответ

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);
}
  • 0
    Спасибо, это было решение. Я только что реализовал его после RaisePropertyChanged, и я подумал, что он должен идти по этому пути, но никогда не думал о linq. Спасибо. :) Теперь мой список выглядит лучше.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню