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