Я хочу создать переменное количество экземпляров ChromeDriver и предоставить для каждого из них свои собственные параметры (из массива параметров, который я создал ранее)
в настоящее время мой код выглядит так:
ChromeDriver[] driver = new ChromeDriver[4]
{
new ChromeDriver(options[0]),
new ChromeDriver(options[1]),
new ChromeDriver(options[2]),
new ChromeDriver(options[3])
};
но проблема в том, что цифра "4" должна быть переменной.
мой подход заключался в использовании цикла foreach и while внутри {} для инициализации единственного ChromeDriver, но C# этого не допускает.
Я не совсем уверен, есть ли способ решить эту проблему без огромного обходного пути.
Заранее благодарю за любую помощь
Вы можете использовать простой оператор LINQ для создания массива.
var driver = options.Select(x => new ChromeDriver(x)).ToArray();
Предполагая, что длина driver
должна быть такой же, как и у вашего options
:
ChromeDriver[] driver = new ChromeDriver[options.Length];
for (int i = 0; i < options.Length; i++)
driver[i] = new ChromeDriver(options[i]);
Извините, я по ошибке добавил ()
в конец new ChromeDriver[options.Length];
. Попробуй ревизию и заработает
Большое спасибо, я потратил на это полдня. не могли бы вы сказать мне, где я могу найти эти основные правила объявления и инициализации. Я имею в виду, что даже если код работает, я все еще не понимаю, почему экземпляры не создаются при создании массива
@Rjinxil Нет проблем. Это особенно актуально в данном случае: Значения по умолчанию для числовых элементов массива устанавливаются равными нулю, а ссылочные элементы - равными нулю. Таким образом, новый массив «объект» будет иметь элементы, установленные в NULL по умолчанию. Статья находится здесь: docs.microsoft.com/en-us/dotnet/csharp/programming-guide/arr ays
это не работает, потому что вы уже инициализировали драйвер [] в первой строке.