回答編集履歴
3
誤記修正
test
CHANGED
@@ -90,4 +90,4 @@
|
|
90
90
|
|
91
91
|
> 問題とその答えがバラバラ
|
92
92
|
|
93
|
-
になるのは,コードの各所でこの `shuffledCsvDatas`
|
93
|
+
になるのは,コードの各所でこの `shuffledCsvDatas` を用いている個所と,元の(順序がシャッフルされていない)`csvDatas` を用いている個所とがあって整合性が取れていない,みたいな話なのではなかろうか? と推測する.
|
2
問題の推測を追記
test
CHANGED
@@ -85,3 +85,9 @@
|
|
85
85
|
5回目:
|
86
86
|
D0, D1, D2, D3,
|
87
87
|
```
|
88
|
+
|
89
|
+
質問文のコードでは,この例とは異なり, `shuffledCsvDatas` という別の変数にシャッフルした結果を受けているが,
|
90
|
+
|
91
|
+
> 問題とその答えがバラバラ
|
92
|
+
|
93
|
+
になるのは,コードの各所でこの `shuffledCsvDatas` と用いている個所と,元の(順序がシャッフルされていない)`csvDatas` を用いている個所とがあって整合性が取れていない,みたいな話なのではなかろうか? と推測する.
|
1
データ自体をシャッフルする話を追記
test
CHANGED
@@ -34,3 +34,54 @@
|
|
34
34
|
...
|
35
35
|
}
|
36
36
|
```
|
37
|
+
|
38
|
+
---
|
39
|
+
|
40
|
+
> CSVのデータを一次元配列に入れてそれをシャッフルし上から順番に読み込んで重複しないようにする
|
41
|
+
|
42
|
+
データ自体をシャッフルして良いのであれば,より単純になる:
|
43
|
+
|
44
|
+
```C#
|
45
|
+
//何かこういう(CSVファイルから読込んだ)データがあって……
|
46
|
+
List< string[] > csvDatas = new List<string[]>
|
47
|
+
{
|
48
|
+
new string[]{ "A0", "A1", "A2", "A3" },
|
49
|
+
new string[]{ "B0", "B1", "B2", "B3" },
|
50
|
+
new string[]{ "C0", "C1", "C2", "C3" },
|
51
|
+
new string[]{ "D0", "D1", "D2", "D3" },
|
52
|
+
new string[]{ "E0", "E1", "E2", "E3" }
|
53
|
+
};
|
54
|
+
|
55
|
+
{//↑の csvDatas 自体をシャッフルしてよいならば,CSV読込直後にシャッフルしておけよい.
|
56
|
+
var Rnd = new Random(); //※ この例で使っているのは .NET Framework の Random
|
57
|
+
csvDatas = csvDatas.OrderBy( x => Rnd.Next() ).ToList();
|
58
|
+
}
|
59
|
+
|
60
|
+
//---
|
61
|
+
|
62
|
+
//あとはシャッフル済みの csvDatas を先頭から順に使うだけだ
|
63
|
+
for( int iTimes=0; iTimes<csvDatas.Count; ++iTimes )
|
64
|
+
{
|
65
|
+
var DataForThisTime = csvDatas[ iTimes ];
|
66
|
+
|
67
|
+
//※↓コレは確認用に DataForThisTime の中身をコンソールに出力してみているだけ
|
68
|
+
Console.WriteLine( (iTimes+1).ToString() + "回目:" );
|
69
|
+
foreach( var str in DataForThisTime )Console.Write( str + ", " );
|
70
|
+
Console.WriteLine();
|
71
|
+
}
|
72
|
+
```
|
73
|
+
|
74
|
+
このコードの出力結果例:
|
75
|
+
|
76
|
+
```
|
77
|
+
1回目:
|
78
|
+
C0, C1, C2, C3,
|
79
|
+
2回目:
|
80
|
+
B0, B1, B2, B3,
|
81
|
+
3回目:
|
82
|
+
A0, A1, A2, A3,
|
83
|
+
4回目:
|
84
|
+
E0, E1, E2, E3,
|
85
|
+
5回目:
|
86
|
+
D0, D1, D2, D3,
|
87
|
+
```
|