将字符串列表添加到字典,然后检索它的值
Adding a string List to a dictionary, then retrieving it's values
我正在使用 Selenium、Specflow、C# 创建测试场景。我有一个 List 并将其添加到 scenarioContext 字典中。现在我想在不同的步骤定义中检索它。我怎么做?
示例:
List<string> myList = new List<string>();
mylist.Add(Thomas);
mylist.Add(Bob);
mylist.Add(Andy);
this.scenariocontext.Add("myList", myList);
//创建了一个新列表以在不同的步骤场景中检索数据
List<string> NewList = new List<string>();
NewList = this.ScenarioContext.Get<string>("myList");
当我尝试从字典中检索值时出现此错误
"Unable to cast object of type 'System.Collections.Generic.List`1[System.String]' to type 'System.String'."
我假设 scenarioContext
被声明为 Dictionary<string, List<string>>
,您可以通过键检索值,在本例中是一个列表。这就是您的代码的样子:
选项 1
Dictionary<string, List<string>> scenarioContext = new Dictionary<string, List<string>>();
List<string> myList = new List<string>();
myList.Add("Thomas");
myList.Add("Bob");
myList.Add("Andy");
scenarioContext.Add("myList", myList);
List<string> newList = new List<string>();
newList = scenarioContext["myList"];
更新:我刚刚发现 SpecFlow 中的 ScenarioContext 有一个额外的 Getter。您在最后一行代码中将列表转换为字符串,它应该如下所示:
NewList = this.ScenarioContext.Get<List<string>>("myList");
您可以使用 key 阅读字典。在您的情况下,它必须如下所示:
newList = this.ScenarioContext["myList"];
我正在使用 Selenium、Specflow、C# 创建测试场景。我有一个 List 并将其添加到 scenarioContext 字典中。现在我想在不同的步骤定义中检索它。我怎么做? 示例:
List<string> myList = new List<string>();
mylist.Add(Thomas);
mylist.Add(Bob);
mylist.Add(Andy);
this.scenariocontext.Add("myList", myList);
//创建了一个新列表以在不同的步骤场景中检索数据
List<string> NewList = new List<string>();
NewList = this.ScenarioContext.Get<string>("myList");
当我尝试从字典中检索值时出现此错误 "Unable to cast object of type 'System.Collections.Generic.List`1[System.String]' to type 'System.String'."
我假设 scenarioContext
被声明为 Dictionary<string, List<string>>
,您可以通过键检索值,在本例中是一个列表。这就是您的代码的样子:
选项 1
Dictionary<string, List<string>> scenarioContext = new Dictionary<string, List<string>>();
List<string> myList = new List<string>();
myList.Add("Thomas");
myList.Add("Bob");
myList.Add("Andy");
scenarioContext.Add("myList", myList);
List<string> newList = new List<string>();
newList = scenarioContext["myList"];
更新:我刚刚发现 SpecFlow 中的 ScenarioContext 有一个额外的 Getter。您在最后一行代码中将列表转换为字符串,它应该如下所示:
NewList = this.ScenarioContext.Get<List<string>>("myList");
您可以使用 key 阅读字典。在您的情况下,它必须如下所示: newList = this.ScenarioContext["myList"];