2012-11-02 123 views
4

我的印象是,LINQ查詢語言適用於IObservable,就像IEnumerable使用ReactiveExtensions一樣。我有以下代碼使用RX擴展的LINQ

Public Sub Foo(source As IObservable(Of Tuple(Of Integer, Integer))) 
    Dim filtered = source.Where(Function(x) x.Item1 > 10).Select(Function(x) x.Item1 + x.Item2) 
    Dim filtered2 = From x In source Where x.Item1 > 10 Select x.Item1 + x.Item2 
End Sub 

Public Sub Bar(source As IEnumerable(Of Tuple(Of Integer, Integer))) 
    Dim filtered = source.Where(Function(x) x.Item1 > 10).Select(Function(x) x.Item1 + x.Item2) 
    Dim filtered2 = From x In source Where x.Item1 > 10 Select x.Item1 + x.Item2 
End Sub 

IEnumerable版本的代碼是OK。然而,對於美孚(二線) 的LINQ版本,我收到了後期綁定不允許的錯誤上

x.Item1 

當我將鼠標懸停在X智能感知說,這是類型的對象,而不是 類型的元組。然而,相同的操作(第一行) 的對象查詢版本編譯好。我已經輸入

Imports system.reactive.linq 

我是否缺少其他參考?

回答

1

問題中的所有代碼對我而言都很好。我不明白你的錯誤。

也許嘗試導入System.Reactive,但除此之外它看起來不錯。

+0

我想我試過了。 – bradgonesurfing