2011-01-12 27 views
1

我是使用LINQ的新手。我想在Silverlight中使用它,因为我正在尝试执行DISTINCT查询。我的Silverlight应用程序ping一个WCF服务,它返回一个自定义类型的ObservableCollection。我正在尝试根据我的自定义类型的几个属性获取DISTINCT记录集。我所知道的第一个步骤是让我的记录集,所以我想下面LINQ与ObservableCollection

var filteredItems = (from entity in e.Result 
        select new FilteredItem 
        { 
         Property1 = entity.Property1, 
         Property2 = entity.Property2, 
         Property3 = entity.Property3 
        }).Distinct(); 

不幸的是,这是行不通的。 Intellisense给我一个错误,说“无法找到源类型MyServiceProxy.MyCustomType的查询模式的实现选择未找到...”我怎样才能使用一个ObservableCollection与LINQ,或得到像我这样的独特设置'米显示?

谢谢!

+0

要调试,我会设置一些这行之前检查e.Result是什么。类似于Console.WriteLine(e.Result.GetType()。ToString());看看它是否给你你所期望的。 – 2011-01-12 15:29:47

回答

7

ObservableCollection<T> implements IEnumerable<T>,所以你应该能够做到这一点,如果你是using System.Linq。所有标准的LINQ操作符都驻留在该命名空间中。如果这不起作用,那么确保你引用了System.Core.dll,因为那是包含这些相同实现的程序集。

+3

Doh!我删除了System.LINQ命名空间。放回去,它的工作。谢谢! – user564042 2011-01-12 15:32:43

相关问题