无法从哈希表中读取键值对

时间:2014-03-10 19:05:12

标签: c# .net

我正在编写一个specflow来测试服务。我正在读表并将键值存储在哈希表中。

以下是功能文件的示例:

    |Index|Id | Message|
    |test1|1   | aa|
    |test2|2   | bb |

以下是我从表格中读取数据的方法

    public Hashtable GetData(Table table)
    {
        var data = table.CreateSet<SpecFlowData>();
        var hashtable = new Hashtable();

        foreach (var currentRow in data)
        {
            var key = currentRow.Index;
            var value = GetValues(currentRow);
            hashtable.Add(key, value);

        }
        return hashtable;
    }

这里我试图在哈希表中提取密钥和值对

     [When(@"the test data is submitted to service")]
    public void WhenTheTestDataIsSubmittedService()
    {
    // the table data is now stored in a Textcontext
        var message = TestContext.Messages;
        byte? result = null;

        foreach (Hashtable entry in message)
        {
            var values = entry.Values;
            // problem area
            foreach (Hashtable item in  values)
            {
            var Ids = item["id"];
            var messages = item["message"];

            // send message to service accepts string,string input
            sendMessageResult = client.SendMessageToService((string)appIds, (string)messages);
            }

        }


    }

由于所有值都有自己的键值对。我试图在第二个循环中访问它,但它没有循环哈希表值的集合。

我不明白为什么我不能在第二个循环中循环所有的值集合

1 个答案:

答案 0 :(得分:0)

将Hashtable替换为Dictionary后,我可以访问数据。