回答編集履歴
2
ソース修正
answer
CHANGED
@@ -5,16 +5,6 @@
|
|
5
5
|
ただもっと美しく書けるやり方とかは分からないです。
|
6
6
|
ひとまずエラー回避ということで。
|
7
7
|
```C#
|
8
|
-
DataTable dtResult = new DataTable();
|
9
|
-
foreach (DataColumn column in dtFrom.Columns)
|
10
|
-
{
|
11
|
-
dtResult.Columns.Add("from." + column.ColumnName, typeof(string));
|
12
|
-
}
|
13
|
-
foreach (DataColumn column in dtJoin.Columns)
|
14
|
-
{
|
15
|
-
dtResult.Columns.Add("join." + column.ColumnName, typeof(string));
|
16
|
-
}
|
17
|
-
|
18
8
|
var methodQ = dtFrom.AsEnumerable().GroupJoin(
|
19
9
|
dtJoin.AsEnumerable(),
|
20
10
|
f => f["key"],
|
@@ -37,5 +27,4 @@
|
|
37
27
|
return row;
|
38
28
|
}
|
39
29
|
);
|
40
|
-
return methodQ.CopyToDataTable();
|
41
30
|
```
|
1
追記
answer
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
とりあえずは左テーブルにキーがあり、右テーブルにキーがないパターン(key:CCC)の時に、
|
2
|
-
SelectManyのDataRow型j変数自体がnullになっているため、
|
2
|
+
SelectMany内のDataRow型j変数自体がnullになっているため、
|
3
3
|
NullReferenceExceptionとなっていますね。
|
4
4
|
なのでnull時に空のObject配列を作っておけば回避はできます。
|
5
5
|
ただもっと美しく書けるやり方とかは分からないです。
|