Я бы сказал, это зависит от того, чего вы пытаетесь достичь. В целом, однако, я считаю, что у вас есть доступ к отличной платформе, которая делает для вас большую тяжелую работу, поэтому используйте ее (т.е. используйте List <> вместо array).
Посмотрите на членов, предлагаемых вам таким классом, как List <>, и вы поймете, что я имею в виду: помимо того, что вам не нужно сильно беспокоиться о емкости массива и индексировании за пределами исключений, List и другие классы ICollection / IList предоставляют вам бесконечно полезные методы, такие как Add, Remove, Clear, Insert, Find и т. д. Я также считаю,
myList.Add (myWidg);
гораздо приятнее читать и поддерживать, чем
myArr [i] = myWidg;
Браузер по умолчанию сохраняется как запись в ключе реестра windows. Значения сохраняются на основе протокола, подобного этому
HKEY_CLASSES_ROOT \ [протокол] \ shell \ open \ command
Где протокол может быть http, https и т. Д. О том, как получить доступ / изменить значения реестра внутри C #, вы можете взгляните на эту статью
Я думаю, вам нужно будет изменить как минимум два RegistryKeys и указать путь к альтернативному браузеру:
HKEY_CLASSES_ROOT\http\shell\open\command
HKEY_CLASSES_ROOT\htmlfile\shell\open\command
Альтернативой может быть создание дополнительную запись под ключом Shell и установите ее как действие по умолчанию:
[HKEY_CLASSES_ROOT\http\shell]
(default) set to OpenWithMyBrowser
[HKEY_CLASSES_ROOT\http\shell\OpenWithMyBrowser\command]
(default) set to "MyBrowser.exe"