2011-01-12 26 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

相關問題