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

回答編集履歴

1

回答を追記

2017/02/10 22:18

投稿

dojikko
dojikko

スコア3939

answer CHANGED
@@ -6,4 +6,43 @@
6
6
  ds.Tables.Add(BBB)
7
7
 
8
8
  ds.Relations.Add("NewTable", AAA.Columns("No"), BBB.Columns("No"))
9
- ```
9
+ ```
10
+
11
+ -追記-
12
+ ただ結果のDataTableが欲しいだけなら
13
+ 前提が
14
+ ```
15
+ Dim AAA As New DataTable
16
+ Dim BBB As New DataTable
17
+ Dim newtable As New DataTable
18
+
19
+ AAA.Columns.Add("No")
20
+ AAA.Columns.Add("Value")
21
+ AAA.Rows.Add(1, "a")
22
+ AAA.Rows.Add(2, "b")
23
+ AAA.Rows.Add(3, "c")
24
+
25
+
26
+ BBB.Columns.Add("No")
27
+ BBB.Columns.Add("Value")
28
+ BBB.Rows.Add(1, "A")
29
+ BBB.Rows.Add(2, "B")
30
+ BBB.Rows.Add(3, "C")
31
+
32
+ newtable.Columns.Add("No")
33
+ newtable.Columns.Add("Value1")
34
+ newtable.Columns.Add("Value2")
35
+ ```
36
+ みたいなのだと思いますが
37
+ ```
38
+ Dim joinresult = AAA.AsEnumerable.Select(Function(x) New With {
39
+ .No = x.Item("No"),
40
+ .Value1 = x.Item("Value"),
41
+ .Value2 = BBB.AsEnumerable.Where(Function(y) y.Item("No") = x.Item("No")).FirstOrDefault?.Item("Value")
42
+ })
43
+
44
+ For Each item In joinresult.ToList
45
+ newtable.Rows.Add(item.No, item.Value1, item.Value2)
46
+ Next
47
+ ```
48
+ みたいにしてもいいかもしれません