0

私は私の辞書のためにこの作業コードを持っています:

dict = new Dictionary<string, string>();

using (StreamReader read = new StreamReader("dictionaryfile.csv"))
{
      string line;
      while ((line = read.ReadLine()) != null)
      {
          string[] splitword = line.Split(',');  
          dict.Add(splitword[0], splitword[1]);
      }
}

Windowsフォームにボタンを追加しましたが、ボタンのクリックからメッセージボックスに表示するために、辞書からランダムなエントリを割り当てるにはどうすればよいですか?

4

1 に答える 1

4

あなたはおそらくRandomクラスとOrderedDictionary:を探しています

var dict = new System.Collections.Specialized.OrderedDictionary(); 
dict.Add("key1", "value1");
dict.Add("key2", "value2");
dict.Add("key3", "value3");
dict.Add("key4", "value4");
// get a random value 
var rnd = new Random();
var randomValue = (String)dict[rnd.Next(0, dict.Count)];

編集Dictionary<String,String>:aとElementAtメソッドを使用したアプローチは次のとおりです。

var rnd = new Random();
var randomEntry = dict.ElementAt(rnd.Next(0, dict.Count));
String randomKey = randomEntry.Key;
String randomValue = randomEntry.Value;

メソッドでランダムインスタンスを作成しないでください。パラメーターとして渡すか、メンバー変数を使用する必要があります:https ://stackoverflow.com/a/768001/284240

于 2012-04-29T19:48:37.573 に答える