WPF LINQ和ObservableCollection

lam*_*ora 10 linq wpf observablecollection

在我的WPF应用程序中,我想尽可能多地使用LINQ(尤其要避免foreach).但是WPF与ObservableCollection一起工作很多,我不能将LINQ与这些集合一起使用.我能做什么?

小智 16

对于任何可能遇到此问题的人来说,尝试过滤ObservableCollection但发现他们不能.

Jon是绝对正确的,因为没有理由不能做到这一点,但对于新手或者用WPF开发一段时间的人来说,关键是你需要包含" 使用System.Linq; " 命名空间.在您执行此操作时,您可以对对象执行".where"查询.

  • 如果查询结果因底层源更新而更新,则生成的 ObservableCollection 将不会更新。 (2认同)

Jon*_*eet 10

是什么让你认为你不能使用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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @ToaoG:它获取数据的副本 - 当原始可观察集合发生变化时,它不会改变,这是我所期望的tofutim所要求的.我可能会误解. (2认同)