質問編集履歴

3

追記

2019/10/31 04:44

投稿

inari_ken
inari_ken

スコア34

test CHANGED
File without changes
test CHANGED
@@ -157,3 +157,217 @@
157
157
  Microsoft .NET Framework
158
158
 
159
159
  Version 4.7.03190
160
+
161
+
162
+
163
+ ### サンプルプログラム(2019年10月31日13時43分追記)
164
+
165
+ 再現しないとご指摘があったため、List生成から呼び出しまでのサンプルプログラムを作成しました。
166
+
167
+ 渡しの環境では以下プログラムで同じエラーが発生します。
168
+
169
+ ```C#
170
+
171
+ using System.Collections.Generic;
172
+
173
+ using System.Linq;
174
+
175
+
176
+
177
+ namespace ConsoleApp3
178
+
179
+ {
180
+
181
+ class Program
182
+
183
+ {
184
+
185
+ static void Main(string[] args)
186
+
187
+ {
188
+
189
+
190
+
191
+ List<string[]> data1 = new List<string[]>();
192
+
193
+ List<string[]> data2 = new List<string[]>();
194
+
195
+
196
+
197
+ List<dynamic> agg1 = new List<dynamic>();
198
+
199
+ List<dynamic> agg2 = new List<dynamic>();
200
+
201
+
202
+
203
+ data1.Add(new string[4] { "1", "2", "3", "4" });
204
+
205
+ data1.Add(new string[4] { "2", "2", "3", "4" });
206
+
207
+ data1.Add(new string[4] { "3", "2", "3", "4" });
208
+
209
+
210
+
211
+ data2.Add(new string[4] { "1", "2", "3", "4" });
212
+
213
+ data2.Add(new string[4] { "2", "2", "3", "4" });
214
+
215
+ data2.Add(new string[4] { "3", "2", "3", "4" });
216
+
217
+ data2.Add(new string[4] { "aaa", "2", "3", "4" });
218
+
219
+
220
+
221
+ int item_count = 0;
222
+
223
+ for (int j = 0; j < 2; j++)
224
+
225
+ {
226
+
227
+
228
+
229
+ agg1.Add(new
230
+
231
+ {
232
+
233
+ title = j.ToString(),
234
+
235
+ result = data1.GroupBy(x => x[item_count])
236
+
237
+ .Select(x => new { Choise = x.Key, Count = x.Count() })
238
+
239
+ .OrderBy(x => x.Choise).ToList()
240
+
241
+ });
242
+
243
+
244
+
245
+ item_count++;
246
+
247
+
248
+
249
+ }
250
+
251
+
252
+
253
+ item_count = 0;
254
+
255
+ for (int j = 0; j < 2; j++)
256
+
257
+ {
258
+
259
+
260
+
261
+ agg2.Add(new
262
+
263
+ {
264
+
265
+ title = j.ToString(),
266
+
267
+ result = data2.GroupBy(x => x[item_count])
268
+
269
+ .Select(x => new { Choise = x.Key, Count = x.Count() })
270
+
271
+ .OrderBy(x => x.Choise).ToList()
272
+
273
+ });
274
+
275
+
276
+
277
+ item_count++;
278
+
279
+
280
+
281
+ }
282
+
283
+
284
+
285
+
286
+
287
+ agg1 = List_Comp(agg1, agg2);
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+ }
298
+
299
+ private static List<dynamic> List_Comp(List<dynamic> target, List<dynamic> reference)
300
+
301
+ {
302
+
303
+
304
+
305
+ int list_count = 0;
306
+
307
+ bool Contains_flg = false;
308
+
309
+ foreach (dynamic dy in reference)
310
+
311
+ {
312
+
313
+ foreach (var item in dy.result)
314
+
315
+ {
316
+
317
+ Contains_flg = false;
318
+
319
+ foreach (var it in target[list_count].result)
320
+
321
+ {
322
+
323
+ if (item.Choise == it.Choise)
324
+
325
+ {
326
+
327
+ Contains_flg = true;
328
+
329
+ }
330
+
331
+ }
332
+
333
+ if (Contains_flg == false)
334
+
335
+ {
336
+
337
+ // 選択肢の追加
338
+
339
+ // 実行時エラー
340
+
341
+ target[list_count].result.Add(new { Choise = item.Choise, Count = 0 });
342
+
343
+ }
344
+
345
+ }
346
+
347
+ list_count++;
348
+
349
+ }
350
+
351
+
352
+
353
+ return (target);
354
+
355
+ }
356
+
357
+
358
+
359
+
360
+
361
+
362
+
363
+ }
364
+
365
+
366
+
367
+
368
+
369
+ }
370
+
371
+
372
+
373
+ ```

2

コメントの修正

2019/10/31 04:44

投稿

inari_ken
inari_ken

スコア34

test CHANGED
File without changes
test CHANGED
@@ -80,17 +80,17 @@
80
80
 
81
81
  // 選択肢の追加
82
82
 
83
- // 実行時エラー
83
+ // 実行時エラー
84
84
 
85
85
  target[list_count].result.Add(new { Choise = item.Choise.ToString(), Count = 0 });
86
86
 
87
87
 
88
88
 
89
- // 試したこと① 正常にListのresultにAddされた
89
+ // 試したこと① 正常にListのresultにAddされた
90
90
 
91
91
  // target[list_count].result.Add(new { Choise = "aaa", Count = 0 });
92
92
 
93
- // 試したこと② 正常にメッセージ"aaa"が表示された
93
+ // 試したこと② 正常にメッセージ"aaa"が表示された
94
94
 
95
95
  // MessageBox.Show(item.Choise);
96
96
 

1

コードの修正

2019/10/31 02:54

投稿

inari_ken
inari_ken

スコア34

test CHANGED
File without changes
test CHANGED
@@ -78,13 +78,21 @@
78
78
 
79
79
  {
80
80
 
81
- // 選択肢の追加
81
+ // 選択肢の追加
82
82
 
83
- target[list_count].result.Add(new { Choise = item.Choise.ToString(), Count = 0 }); // ←実行時エラー
83
+ // ←実行時エラー
84
84
 
85
- // target[list_count].result.Add(new { Choise = "aaa", Count = 0 }); // ←試したこと① 正常にListのresultにAddされた
85
+ target[list_count].result.Add(new { Choise = item.Choise.ToString(), Count = 0 });
86
86
 
87
+
88
+
89
+ // ←試したこと① 正常にListのresultにAddされた
90
+
91
+ // target[list_count].result.Add(new { Choise = "aaa", Count = 0 });
92
+
87
- // MessageBox.Show(item.Choise); // ←試したこと② 正常にメッセージ"aaa"が表示された
93
+ // ←試したこと② 正常にメッセージ"aaa"が表示された
94
+
95
+ // MessageBox.Show(item.Choise);
88
96
 
89
97
  }
90
98