Преобразовать универсальный массив в определенный тип - PullRequest
1 голос
/ 08 ноября 2011

Я использую Interop для работы с Excel в C #.Мне нужны две клетки.Вот как я их получаю:

cells = (Excel.Range)sheet.get_Range("V" + i, "W" + i);
System.Array values = (System.Array)cells.Cells.Value;

Возвращает нужные мне значения, как было проверено с помощью цикла foreach.Но как мне получить элементы в string переменных?Я попробовал это:

var stringValues = values.Cast<string>();

, но я не могу получить к нему доступ без сообщения об ошибке.

Ответы [ 3 ]

3 голосов
/ 08 ноября 2011

Достаточно простого ConvertAll:

var stringValues = Array.ConvertAll(values, item => (string)item);
0 голосов
/ 08 ноября 2011

Вы можете попробовать:

values.Select(o => o.ToString());
0 голосов
/ 08 ноября 2011

код var stringValues = values.Cast<string>(); пытается преобразовать массив в строку.Итак, если вы пытаетесь получить массив строк, вы можете попробовать:

var stringValues = new List<string>();

values.ToList().ForEach(cellValue=>stringValues.Add(cellValue.ToString());

Это не в моей голове, возможно, есть более краткий способ выразить это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...