Преобразование LinqToExcel.Тип RowNoHeader в строку

#c# #.net #linq #linq-to-excel

#c# #.net #linq #linq-to-excel

Вопрос:

В последнее время я использую библиотеку LinqToExcel и столкнулся с этой проблемой.

вот код

   var excel = new ExcelQueryFactory(fileName);
  var dataList = (from c in excel.WorksheetRangeNoHeader("A1", "A4", "Test Worksheet")
                select c).ToList();
  

В этой коллекции dataList будет что-то вроде «Cat», «Dog», «Fish» и «Goat»

Теперь все, что я хочу сделать, это назначить Fish переменной в виде строки, выполнив что-то вроде этого

 string temp=dataList[2];
  

Однако, когда я запускаю код, я получаю значение temp как «LinqToExcel.RowNoHeader». У кого-нибудь есть идея о том, как извлечь фактическое значение Fish в переменную temp.

Заранее спасибо

Комментарии:

1. Если вы поставите точку останова перед string temp=dataList[2]; можете ли вы разложить объект по деревьям в окне locals, чтобы увидеть, какое свойство содержит значение?

2. Таких свойств нет. Однако в окне отладчика я вижу что-то вроде этого _items=LinqToExcel. RowNoHeader[4]; Это то, что содержит значение

Ответ №1:

Взломал его! Я имел в виду всю строку, а не первую ячейку каждой строки. Поэтому мне нужен был C [0], чтобы получить элементы.

  var excel = new ExcelQueryFactory(fileName);
 var dataList = (from c in excel.WorksheetRangeNoHeader("A1", "A4", "Test Worksheet")
            select c[0]).ToList();
  

И код извлечения будет

 var temp=Convert.ToString(dataList[2]);