LINQクエリ言語は、ReactiveExtensionsを使用したIEnumerableの場合と同様に、IObservableでも機能するという印象を受けました。私は次のコードを持っています
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です。ただし、FooのLINQバージョン(2行目)では、遅延バインディングが許可されていないというエラーが発生します。
x.Item1
xにカーソルを合わせると、Intellisenseは、タプル型ではなくオブジェクト型であると言います。ただし、同じ操作のオブジェクトクエリバージョン(最初の行)は正常にコンパイルされます。インポートしました
Imports system.reactive.linq
別の参照がありませんか?