WPF LINQ и ObservableCollection - PullRequest
       7

WPF LINQ и ObservableCollection

8 голосов
/ 15 июля 2010

В моем приложении WPF я бы хотел максимально использовать LINQ (особенно во избежание foreach). Но WPF очень хорошо работает с ObservableCollection, и я не могу использовать LINQ для такого рода коллекций. Что я могу сделать?

Ответы [ 3 ]

16 голосов
/ 18 апреля 2012

Просто для всех, кто может столкнуться с этой проблемой при попытке отфильтровать ObservableCollection, но обнаружит, что не может.

Джон абсолютно прав в том, что нет никаких причин, почему вы не можете сделать это, но главное для новичка или для кого-то, кто некоторое время разрабатывал с WPF, это то, что вам нужно включить " using System.Linq; " пространство имен. Как только вы это сделаете, вы можете выполнить запрос «.where» для вашего объекта.

10 голосов
/ 15 июля 2010

Что заставляет вас думать, что вы не можете использовать LINQ с ObservableCollection<T>? Он реализует Collection<T>, поэтому все должно быть в порядке.

Например:

using System;
using System.Collections.ObjectModel;
using System.Linq;

class Test
{
    static void Main()
    {
        var collection = new ObservableCollection<int>()
        {
            1, 2, 3, 6, 8, 2, 4, 5, 3
        };

        var query = collection.Where(x => x % 2 == 0);
        foreach (int x in query)
        {
            Console.WriteLine(x);
        }
    }
}
1 голос
/ 07 февраля 2018

ОП специально запросил метод LINQ ".ForEach ()", который нельзя использовать в ObservableCollection , поскольку он реализован только для List .

Есть еще одна SO-тема, в которой я нашел свое решение: https://stackoverflow.com/a/200584/2408978

...