我编写了以下代码解析csv
文件:
var result = FullFile.Split('\n')
.Select(s => new
{ FirstName = s.Split(',')[(int)FirstName.Value],
SirName = s.Split(',')[(int)sirName.Value],
garde = s.Split(',')[(int)Grade.Value] });
现在,我使用函数Split
多次使用相同的参数,并在同一个对象上。
有没有办法继续使用lambada表达式,并减少了这个函数调用?
欢迎对我的编码提出任何其他意见
答案 0 :(得分:7)
是的,您可以在第一个Select
中拆分一次,然后将结果传递给第二个Select
,如下所示:
var result = FullFile
.Split('\n')
.Select(line => line.Split(','))
.Select(tt => new
{ FirstName = tt[(int)FirstName.Value],
SirName = tt[(int)sirName.Value],
garde = tt[(int)Grade.Value] });
答案 1 :(得分:4)
试试这个:
var result = from var s in FullFile.Split('\n')
let x = s.Split(',')
select new {
FirstName = x[(int)FirstName.Value],
SirName = x[(int) SirName.Value],
Grade = x[(int) Grade.Value]
};