#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]);