我的 .csv 格式为 -
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
我正在尝试使用以下 LINQ 读取此 .csv -
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();
问题是这个 LINQ 没有给我任何结果。我一步一步调试了这个 LINQ,所以我发现到这一部分为止我的 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();
它什么也没给我。经过调试,我发现在数据变量中,它说,index out of bounds of the array
但是我重新检查了一下,我知道我对每个字段都使用了正确的索引号。
我甚至删除了所有内容并检查 grpNo = fields[0]
,它给了我相同的消息“索引超出范围”。
请提出建议。谢谢!