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

回答編集履歴

2

追記

2017/06/02 00:59

投稿

workaholist
workaholist

スコア559

answer CHANGED
@@ -30,4 +30,49 @@
30
30
 
31
31
  【追記】
32
32
  最後まで書き込みを見てませんでした。
33
- 最後に書かれているやり方だと、table1~3が同一の実体を指す事になり、table1に対する変更などがtable2にもtable3にも起こることになりますが大丈夫でしょうか。
33
+ 最後に書かれているやり方だと、table1~3が同一の実体を指す事になり、table1に対する変更などがtable2にもtable3にも起こることになりますが大丈夫でしょうか。
34
+
35
+ 【追記2】
36
+ xo001122さんのコード
37
+ ```C#
38
+ Sub Main()
39
+ Dim temp_table As New DataTable
40
+ temp_table.Columns.Add("retu1")
41
+ temp_table.Columns.Add("retu2")
42
+ temp_table.Columns.Add("retu3")
43
+
44
+ Dim table1 As DataTable = temp_table
45
+ Dim table2 As DataTable = temp_table
46
+ Dim table3 As DataTable = temp_table
47
+
48
+ ' table1に1行追加してそれぞれのDataTableの行数を表示
49
+ table1.Rows.Add()
50
+ Console.WriteLine("table1の行数:{0}", table1.Rows.Count) ' 1行
51
+ Console.WriteLine("table2の行数:{0}", table2.Rows.Count) ' 1行
52
+ Console.WriteLine("table3の行数:{0}", table3.Rows.Count) ' 1行
53
+
54
+ Console.ReadLine()
55
+ End Sub
56
+ ```
57
+ 私のコード。
58
+ ```C#
59
+ Sub Main()
60
+ Using table1 As New DataTable(),
61
+ table2 As New DataTable(),
62
+ table3 As New DataTable()
63
+ For Each tbl In {table1, table2, table3}
64
+ tbl.Columns.Add("teru1")
65
+ tbl.Columns.Add("teru2")
66
+ tbl.Columns.Add("teru3")
67
+ Next
68
+
69
+ ' table1に1行追加してそれぞれのDataTableの行数を表示
70
+ table1.Rows.Add()
71
+ Console.WriteLine("table1の行数:{0}", table1.Rows.Count) ' 1行
72
+ Console.WriteLine("table2の行数:{0}", table2.Rows.Count) ' 0行
73
+ Console.WriteLine("table3の行数:{0}", table3.Rows.Count) ' 0行
74
+ End Using
75
+
76
+ Console.ReadLine()
77
+ End Sub
78
+ ```

1

追記

2017/06/02 00:59

投稿

workaholist
workaholist

スコア559

answer CHANGED
@@ -26,4 +26,8 @@
26
26
  Next
27
27
  End Using
28
28
  ```
29
- あとはディープコピーするとか。
29
+ あとはディープコピーするとか。
30
+
31
+ 【追記】
32
+ 最後まで書き込みを見てませんでした。
33
+ 最後に書かれているやり方だと、table1~3が同一の実体を指す事になり、table1に対する変更などがtable2にもtable3にも起こることになりますが大丈夫でしょうか。