teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

リクエストに応えて

2017/10/31 03:08

投稿

hihijiji
hihijiji

スコア4152

answer CHANGED
@@ -27,4 +27,27 @@
27
27
  }
28
28
  ```
29
29
  PS. DataTable は過去の遺物で、重たく扱いづらい代物です。
30
- また最近の主流であるLINQとは相性が悪いです。
30
+ また最近の主流であるLINQとは相性が悪いです。
31
+
32
+ -- リクエストにより追記 --
33
+ 一度匿名型にして Distinct 拡張メソッドで重複を取り除いています。
34
+ ```C#
35
+ var rows = targetDt.AsEnumerable()
36
+ .Join(otherDt.AsEnumerable(),
37
+ t => new { a = t.Field<string>("A"), b = t.Field<string>("B") },
38
+ o => new { a = o.Field<string>("A"), b = o.Field<string>("B") },
39
+ (t, o) => new
40
+ {
41
+ a = t.Field<string>("A"),
42
+ b = t.Field<string>("B"),
43
+ c = t.Field<string>("C"),
44
+ d = o.Field<string>("D")
45
+ })
46
+ .Distinct()
47
+ .Select(j =>
48
+ {
49
+ var row = response.NewRow();
50
+ row.ItemArray = new[] { j.a, j.b, j.c, j.d };
51
+ return row;
52
+ });
53
+ ```