これは私の質問の機能である、私は一度に1行を取得するためにShuffledList関数にデータの収集を送るなぜC#のList <E>から繰り返しオブジェクトが取得されるのですか?
private void nextQuestion_Question()
{
ql1 = ShuffleList(ql1);
currentQuestion_List = ql1.ElementAt(0);
//ql1.RemoveAt(0);
txtQ.Text = currentQuestion_List.text;
btnA.Text = currentQuestion_List.a;
btnB.Text = currentQuestion_List.b;
btnC.Text = currentQuestion_List.c;
btnD.Text = currentQuestion_List.d;
}
が、この機能を、それが繰り返さオブジェクトに
を返すいくつかの回private List<E> ShuffleList<E>(List<E> inputList)
{
List<E> randomList = new List<E>();
Random r = new Random();
int randomIndex = 0;
while (inputList.Count>0)
{
randomIndex = r.Next(inputList.Count); //Choose a random object in the list
randomList.Add(inputList[randomIndex]); //add it to the new, random list
inputList.RemoveAt(randomIndex); //remove to avoid duplicates
}
return randomList; //return the new random list
}
メモマルチ選択ゲームを作成しようとしていますが、うまく動作しますが、何度か同じ質問が繰り返し表示されます 私を助けてくださいこの問題を解決するには
シャッフルリストに欠陥があります。インプレイスのスワップ要素としてはより効率的です;アプリの存続期間に同じランダムオブジェクトを使用する必要があります。適切なシャッフルは、各要素が1回だけ交換されるように後方にループします。ゲームごとに一度だけシャッフルしてください – Plutonix
私もあなたが言ったようにしようとしていますが、それは私と一緒にそれを修正することはできません? –
適切にdshuffleする方法を示す多くの答えがここにあります – Plutonix