2016-09-12 7 views
0

私はこのアプリケーションをのtextboxに同じarrayのものとして挿入する必要があります。 stringsはラベルに載っています。回答ごとに、配列内のランダムな単語/文字列に移動します。配列内の文字列を無効にするために配列を無効にする

私の質問はdeleteまたはdisableの単語/文字列がarrayにありますので、重複はありませんか?

string[] arrProvincies = File.ReadAllLines(@"provincies.txt"); 

int counter = 0; 
string Array = ""; 

string Array = arrProvincies[counter].ToString(); 
lblProvincie.Text = Array; 
counter = rnd.Next(0, 12); 
+1

別のエントリを取得するために 'var provinces = arrProvincies.Distinct()'を呼び出すだけです。 –

+3

'重複を防止する'は '繰り返しなしのランダム選択'と同じではありません。あなたは実際に何をしたいですか? –

+0

同じ文字列を複数回使用したくないです。 – Gekkehond

答えて

2

あなたはQueueを使用することができます。

Queue<string> arrProvincies = new Queue<string>(File.ReadAllLines(@"provincies.txt")); 

そして、あなたはそれを使用するときには、エントリを削除するので、このようにあなたは何の重複がないようにしてくださいよlblProvincie.Text = arrProvincies.Dequeue();

でそれを使用しています。


あなたがシャッフルが必要な場合:

Queue<string> arrProvincies = new Queue<string>(File.ReadAllLines(@"provincies.txt").OrderBy(o => Guid.NewGuid())); 
+2

OPはエントリをランダムに取得しようとしています。キューにロードする前にラインをシャッフルする必要があります。 –

+0

@PanagiotisKanavos true、added info。 –

+0

最初のコード行はどこに置かれますか? – Gekkehond

1
string[] arrProvincies = File.ReadAllLines(@"provincies.txt"); 

var randomProvincies = arrProvincies.Distinct().OrderBy(i => Guid.NewGuid()); 

randomProvinciesはランダムに命じ異なる値になりますが(私はそれはあなたがテキストボックスに同じ文字列を挿入すると言う部分を理解することができませんでした)。

関連する問題