函数调用太多



我编写了以下代码来解析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]
                             };

最新更新