【问题标题】:Unable to read key value pair from hashtable无法从哈希表中读取键值对
【发布时间】:2014-03-10 19:05:11
【问题描述】:

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

以下是功能文件的示例:

    |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);
            }

        }


    }

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

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

【问题讨论】:

  • 这看起来像是字典的更难版本。
  • 你应该使用Dictionary&lt;TKey, TValue&gt;,而不是HashTable。
  • 您确定条目的类型是Hashtable
  • @DarkSquirrel42 它的 ICollection
  • @SLaks 你的评论帮助了......谢谢

标签: c# .net


【解决方案1】:

一旦我将 Hashtable 替换为 Dictionary,我就可以访问数据了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-30
    • 1970-01-01
    • 2015-01-10
    • 2013-11-27
    • 2015-07-19
    • 1970-01-01
    • 2012-08-17
    • 2012-07-08
    相关资源
    最近更新 更多