如何从字典中选择随机值并将其分配给列表

时间:2014-01-30 15:01:58

标签: list file-io dictionary random

我有2个词典(由xml-spreadsheet导入的数据填充,几个嵌套的foreach循环) 示例Excel-xml如下所示: enter image description here

Dictionary<string, string> sheet3 = new Dictionary<string, string>();
Dictionary<string, List <KeyValuePair<string,string>>> sheet4 = new Dictionary
                                  <string, List<KeyValuePair<string,string>>>();

每个都包含:

sheet3.Add(situation, succession)
sheet4.Add(srcSituation, new List<KeyValuePair<string,string>>());
sheet4[srcSituation].Add(new KeyValuePair<string, string>(dstSituation, command));

在Sheet4中,我可以看到某种“顺序”。 Sheet3显示了情况和这种情况的感觉,看起来像。在Sheet4我有订单,你可以看到,第一个是训练,然后它进入饥饿状态,然后饥饿变得疲惫,之后,疲倦进入觉醒。每个dstSituation都需要在srcSituation和dstSituation之间进行“命令”才能实现。

我想从“sheet4”中随机选择“dstSituation”并将“command”写入txt文件。然后查找“situation”==“dstSituation”并将“succession”字符串添加到同一个txt文件中。接下来我会重新开始整个事情,但假设可以选择dstSituation“是”srcSituation“只是==以前选择”dstSituation“。依此类推等等。

这就是说,一旦我得到更多的“情况”,在Sheet4中会有更多srcSituation-&gt; dstSituation和ofc,将有更多相同的srcSituation进入不同的dstSituation。

想象一下这是一张地图没有一条路可以实现某个目标,但可以有随机路由。我不知道如何编写它,因为它主要是在字典和列表上运行循环而且我不知道如何构造正确的语法。

1 个答案:

答案 0 :(得分:0)

试试这段代码。

......Codes before

Random rnd = new Random();
int randomValue = rnd.Next(0, sheet3.Count-1);
var result = sheet3.ElementAt(randomValue);
/*
 * Your code here
 */