Как исправить ошибку приведения с Cast в C #? - PullRequest
0 голосов
/ 27 марта 2019
SystemIO[] s = Enum.GetNames(typeof(SystemIO)).Cast<SystemIO>().ToArray();

Я хочу привести свой string[] к SystemIO[].

. Я получаю следующую ошибку:

Трассировка: в System.Linq.Enumerable.d__97`1.MoveNext ()
в System.Linq.Buffer`1..ctor (источник IEnumerable`1)
в System.Linq.Enumerable.ToArray [TSource] (источник IEnumerable`1)
вTestCase.TestCaseGeneral.AllIos ()

Почему я не могу разыграть таким образом?

1 Ответ

3 голосов
/ 27 марта 2019

Если вы хотите получить значения поставить Enum.GetValues:

SystemIO[] s = Enum
  .GetValues(typeof(SystemIO))
  .Cast<SystemIO>()
  .ToArray();

Если вы хотите имена изменить s тип (имена strings):

string[] s = Enum
  .GetNames(typeof(SystemIO));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...