0

同じ構造を持つ2つのデータテーブルと、重複キーを持ついくつかの行があります。したがって、ラムダ式を使用して、テーブル 2 の任意の行のキーと重複するキーを持つテーブル 1 のすべてのレコードを取得したいと考えていitem1ますitem2

Dim result as IEnumerable(Of DataRow) = table1.Asenumerable.Where(function(t1) _
table2.AsEnumerable().Any(function(t2) t1("item1") = t2("item1") _
andalso t1("item2") = t2("item2")))

result.count = 0しかし、このコード スニペットでは、2 つのテーブル間に重複があるにもかかわらず、常に結果が得られません ( )。

P/S: 下手な英語でごめんなさい

4

1 に答える 1

1

私は次のことを試みます:

' prepare HashSet from keys from table2 '
Dim table2Keys = new HashSet(Of Tuple(Of String, String))
set.UnionWith(table2.AsEnumerable().Select(Function(x) Tuple.Create(x("item1"), x("item2"))

' search table1 for duplicates '
Dim result = table1.Where(Function(x) table2Keys.Contains(Tuple.Create(x("item1", y("item2")))

ルックアップはO(1)で実行できるAnyため、 を使用するよりもパフォーマンスが向上するはずです。HashSet

于 2013-08-20T05:28:43.177 に答える