2012-04-29 66 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”字典。 –