Ошибка выполнения при приведении массива к строковому перечислителю
Это дополнительный вопрос к Design issues and implementing Enumerable.AsEnumerable<FarPoint.Win.Spread.Row>
Я преобразовал строку дальней точки в массив объектов 2 d следующим образом:
object[,] nthRow = fpSpread2.ActiveSheet.GetArray(e.Row, e.Column, 1, FarPointSpread1.ActiveSheet.ColumnCount);
Я пытаюсь привести это к строке, чтобы я мог применить Linq, но я получаю следующую ошибку во время выполнения:
IEnumerator<string> narry = (IEnumerator<string>)nthRow.GetEnumerator();
Невозможно привести объект типа 'ArrayEnumerator' к типу 'System.Collections.Generic.IEnumerator`1[System.String]'.
Как я могу решить эту проблему?
1 ответ
Решение
Даже для многомерных массивов вы можете вызвать Cast<T>
в теме.
using System.Linq;
...
nthRow.Cast<string>().GetEnumerator() // returns IEnumerator<string>
Но каждый элемент в массиве должен иметь тип string
, Если вы хотите сделать форматирование как ToString()
, вы можете сначала бросить их в object
а затем позвоните Select<T>
,