質問編集履歴

5

重複例を追加

2017/10/31 01:12

投稿

r-user
r-user

スコア12

test CHANGED
File without changes
test CHANGED
@@ -41,3 +41,43 @@
41
41
  }
42
42
 
43
43
  ```
44
+
45
+ #追記
46
+
47
+ テーブル1   テーブル2
48
+
49
+ A列 B列 C列 A列 B列 D列
50
+
51
+ 1 2 a    1 2 d
52
+
53
+ 1 2 b
54
+
55
+ 1 2 c
56
+
57
+ のDataTableがあった場合、理想としては結合後のテーブルは
58
+
59
+ テーブル 3
60
+
61
+ A列 B列 C列 D列
62
+
63
+ 1 2 a d
64
+
65
+ 1 2 b d
66
+
67
+ 1 2 c d
68
+
69
+ なのですが実際は
70
+
71
+ テーブル 3
72
+
73
+ A列 B列 C列 D列
74
+
75
+ 1 2 a d
76
+
77
+ 1 2 a d
78
+
79
+ 1 2 a d
80
+
81
+ になってしまいます。
82
+
83
+ 重複させないようにしたいのですが不可能でしょうか?

4

誤字修正

2017/10/31 01:12

投稿

r-user
r-user

スコア12

test CHANGED
File without changes
test CHANGED
@@ -11,6 +11,12 @@
11
11
 
12
12
 
13
13
  拙い文章ではありますが、何卒ご回答の程よろしくお願いします。
14
+
15
+ 環境
16
+
17
+ OS:windows7
18
+
19
+ visualstudio:2017
14
20
 
15
21
 
16
22
 

3

文章修正

2017/10/30 03:58

投稿

r-user
r-user

スコア12

test CHANGED
@@ -1 +1 @@
1
- DataTableをLINQと使用して結合したい
1
+ LINQを使用してDataTableを結合したい
test CHANGED
@@ -1,8 +1,16 @@
1
1
  表題通り、2つのDataTableを結合したいのです。
2
2
 
3
- 2つのキーが一致していたら結合させるという結合条件なのですが、どこが間違っているのか全く見当もつかない状態です。
3
+
4
4
 
5
+ DataTable1に列ABCが含まれており、DataTable2に列ABDが含まれていたとしたら、結合し列ABCDのDataTableを作成したいのです。
6
+
7
+ 列A,Bの値が一致していたら結合させたいのですが、下記のコードだとDataTable1そのままが返ってきます。
8
+
9
+ LinQのselectの部分が間違っているのではないかと考え、列1つ1つ匿名型で指定する方法も試そうとしましたが、列が多くできれば完結に記載したいのですが調べても答えを見つけられませんでした。
10
+
11
+
12
+
5
- よろしくお願いします。
13
+ 拙い文章ではありますが、何卒ご回答の程よろしくお願いします。
6
14
 
7
15
 
8
16
 
@@ -27,9 +35,3 @@
27
35
  }
28
36
 
29
37
  ```
30
-
31
- #追記
32
-
33
-
34
-
35
- テーブル1 列ABC と テーブル2 列ABD を結合し、 列ABCDのDataTableを作成したいのです。

2

例追加

2017/10/30 03:56

投稿

r-user
r-user

スコア12

test CHANGED
File without changes
test CHANGED
@@ -27,3 +27,9 @@
27
27
  }
28
28
 
29
29
  ```
30
+
31
+ #追記
32
+
33
+
34
+
35
+ テーブル1 列ABC と テーブル2 列ABD を結合し、 列ABCDのDataTableを作成したいのです。

1

コードタグを使用していなかった点を修正

2017/10/30 02:43

投稿

r-user
r-user

スコア12

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,13 @@
2
2
 
3
3
  2つのキーが一致していたら結合させるという結合条件なのですが、どこが間違っているのか全く見当もつかない状態です。
4
4
 
5
+ よろしくお願いします。
6
+
7
+
8
+
9
+ ```C#
10
+
5
- よろしくお願いします。``` private DataTable dtJoiner(DataTable targetDt, DataTable otherDt)
11
+ private DataTable dtJoiner(DataTable targetDt, DataTable otherDt)
6
12
 
7
13
  {
8
14
 
@@ -10,7 +16,7 @@
10
16
 
11
17
  join otherDtRow in otherDt.AsEnumerable()
12
18
 
13
- on new { senku = targetDtRow.Field<string>("線区"), ekijun = targetDtRow.Field<string>("駅順") } equals new { senku = otherDtRow.Field<Int32>("線区").ToString(), ekijun = otherDtRow.Field<Int32>("駅順").ToString() }
19
+ on new { a= targetDtRow.Field<string>("A"), b= targetDtRow.Field<string>("B") } equals new { a= otherDtRow.Field<Int32>("A").ToString(), b= otherDtRow.Field<Int32>("B").ToString() }
14
20
 
15
21
  select targetDtRow;
16
22
 
@@ -20,6 +26,4 @@
20
26
 
21
27
  }
22
28
 
23
- コード
24
-
25
29
  ```