Meu .csv está no formato -
Group No,Group Name,Type,Class,Category,Description,Product,Quantity,Stock,Id,Name
1,B,X,Y,Table,Wooden Table,Table,12,50,123,XYZ
Estou tentando ler este .csv usando o seguinte LINQ –
var data = lines
.Select((line, index) => new { Line = line, Index = index + 1 }) // capture line number
.Skip(1) // skip header
.Select(x => x.Line.Split(',').Select(field => field.Trim()).ToArray()
.Select(fields => new {
grpNo = fields[0],
product = fields[6],
Qty = fields[7],
stock = fields[8],
ID = fields[9],
Name = fields[10],
LineIndex = x.Index
})).ToList();
A questão é que este LINQ não está me dando nenhum resultado. Depurei este LINQ passo a passo e descobri que até esta parte meu LINQ está funcionando bem e posso ver os dados -
var data = lines
.Select((line, index) => new { Line = line, Index = index + 1 }) // capture line number
.Skip(1) // skip header
.Select(x => x.Line.Split(',').Select(field => field.Trim()).ToArray()
Mas quando incluo a seguinte parte -
Select(fields => new {
grpNo = fields[0],
product = fields[6],
Qty = fields[7],
stock = fields[8],
ID = fields[9],
Name = fields[10],
LineIndex = x.Index
})).ToList();
isso não me dá nada. Após a depuração, descobri que na variável de dados diz:index out of bounds of the array
Mas verifiquei novamente e sei que estou usando números de índice adequados para cada campo.
Até removi tudo e verifiquei grpNo = fields[0]
, me deu a mesma mensagem "Índice fora dos limites".
Por favor sugira. Obrigado!