Добавление списка строк в словарь, а затем получение его значений - PullRequest
0 голосов
/ 07 мая 2020

Я создаю тестовый сценарий ios с использованием Selenium, Specflow, C#. У меня есть список, и я добавил его в словарь сценария. Теперь я хочу получить его в другом определении шага. Как я могу это сделать? Пример:

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

Когда я пытаюсь извлечь значения из словаря, я получаю эту ошибку " Невозможно преобразовать объект типа 'System.Collections.Generi c .List`1 [System.String]' к типу 'System.String'. "

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Вы можете читать словарь, используя ключ. В вашем случае он должен выглядеть так: newList = this.ScenarioContext ["myList"];

0 голосов
/ 07 мая 2020

Я предполагаю, что 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"];

Обновление: я только что узнал, что ScenarioContext в SpecFlow имеет дополнительный Getter. Вы преобразовываете список как строку в последней строке кода, он должен выглядеть так:

NewList  = this.ScenarioContext.Get<List<string>>("myList");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...