WPF LINQ和ObservableCollection

在我的WPF应用程序中,我想尽可能地使用LINQ(特别是为了避免foreach )。 但是WPF和ObservableCollection一起工作很多,我不能用这些类型的集合来使用LINQ。 我能做什么?


是什么让你认为你不能在ObservableCollection<T>使用LINQ? 它实现了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);
        }
    }
}

只是针对可能遇到此问题的其他人尝试过滤ObservableCollection,但发现他们不能。

Jon绝对正确,因为你没有理由不这样做,但对于一个新手或者一直在WPF开发一段时间的人来说,关键是你需要包含“ using System.Linq; “ 命名空间。 当你这样做的时候,你可以对你的对象做一个“.where”查询。


OP特别要求LINQ“.ForEach()”方法,它不能在ObservableCollection <T>上使用,因为它仅用于List <T>。

还有另一个SO主题,我找到了我的解决方案:https://stackoverflow.com/a/200584/2408978

链接地址: http://www.djcxy.com/p/53011.html

上一篇: WPF LINQ and the ObservableCollection

下一篇: Query and updating a property in a collection using LINQ