2012-04-29 65 views
0

我有我的字典裏這個工作代碼:C#隨機進入點擊

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窗體,我將如何分配從我的字典裏隨機進入在點擊按鈕的消息框中顯示?

+0

...沒什麼,我不知道該怎麼做,這就是爲什麼我要求幫助如何做到這一點 – user1353517

+2

你是否認真地告訴我,你甚至沒有谷歌「隨機c#」? – Oded

+0

是否有任何理由不與字典同時添加條目到List >? –

回答

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>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

+0

這就是我正在尋找的東西,但我不明白爲什麼你把這個dict添加到代碼中,因爲我沒有添加代碼任何東西。我只是想在按鈕點擊時顯示一個隨機條目 – user1353517

+0

Tim的例子是一個代碼片段,您可以將它複製並粘貼到函數中以自行運行 - 爲了確切的問題,您基本上需要最後兩行代碼。如果這是針對將用於分配/原型/學習以外的代碼,我強烈建議您閱讀Random類,因爲開發人員需要了解隨機數生成的幾個方面。 –

+0

@ user1353517:編輯我的答案,以提供一個'Dictionary '的方法。我的代碼是示例代碼。當然,您需要引用從按鈕的click事件處理程序中的form-load(或whencever)填充的「global」字典。 –