我编写了以下代码来解析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
。
是否有一种方法可以继续使用lambda表达式,并减少此函数调用?
欢迎对我的代码进行任何其他评论
是的,您可以在第一个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] });
试试这个:
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]
};