2017-05-04 56 views
-2

我有这样 我读文件 一个文件,我需要一群这一由文件
开始5条线路所产生的名单会在第一列的1,最高的第4列的最低4列,列的总和的3如何组由若干行的文本

搜索给我组被一些身份识别解决方案,通过多条线路进行分组无解

在此先感谢

20170208 10:00:23   2  8.690 
20170208 10:00:25   2  8.690 
20170208 10:00:26  2383  8.690 
20170208 10:00:26   1  8.690 
20170208 10:00:26  7616  8.690 
20170208 10:00:26   1  8.690 
20170208 10:00:31   500  8.690 
20170208 10:00:36   2  8.690 
20170208 10:00:38   2  8.690 
20170208 10:00:41  2000  8.690 
20170208 10:00:41   250  8.690 
20170208 10:00:41   25  8.680 
20170208 10:00:42   25  8.680 
+0

看一看【如何提问](https://stackoverflow.com/help/how-to-ask) –

+1

所以你的避风港什么都没试过?至少显示您的预期结果。 –

+0

也许看看[Take()](https://msdn.microsoft.com/library/bb503062.aspx)和[Skip()](https://msdn.microsoft.com/library/bb358985.aspx )。 –

回答

0

GroupBy(按行数划分整数除数技巧组)并且需要First/Min/Max/Sum。当然,你还需要将字符串解析到真正的类型:

var newLines = File.ReadLines(path) 
    .Select((line, index) => new { line, index, fields = line.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries) }) 
    .GroupBy(x => x.index/5) 
    .Select(g => new 
    { 
     Col1First = g.First().fields[0], 
     Col4Max = g.Max(x => decimal.Parse(x.fields[3], NumberFormatInfo.InvariantInfo)), 
     Col4Min = g.Min(x => decimal.Parse(x.fields[3], NumberFormatInfo.InvariantInfo)), 
     Col3Sum = g.Sum(x => int.Parse(x.fields[2])) 
    }) 
    .ToList();