Ошибка выполнения при приведении массива к строковому перечислителю

Это дополнительный вопрос к 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>,

Другие вопросы по тегам