首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >文件ReadLine计数

文件ReadLine计数
EN

Stack Overflow用户
提问于 2014-05-14 14:27:23
回答 3查看 956关注 0票数 0

我试图从一个文件中读取,程序遍历文本文件的每一行,比较每行的前8个字符,并将这些行连接成一个其中的8个字符是similar.See代码:

代码语言:javascript
运行
复制
 while ((line1 = fileread1.ReadLine()) != null)
        {

            line2 = fileread2.ReadLine();
            while (line2 != null)
            {
                if (line1.Length >= 8 && line2.Length >= 8 &&
                    line1.Substring(0, 8) == line2.Substring(0, 8))
                {
                    //line2 = line2.Remove(0, 60);
                    line1 = line1 +" "+ line2;
                }
                line2 = fileread3.ReadLine();
                counter2++;
            }

            filewrite.WriteLine(line1);
            counter1++;
        }

问题1:

如何获取fileread2的计数并将其赋值给fileread3,因为每次执行内部循环时,我都需要将fileread3的计数重置为与fileread2相同。

问题2:

如何将组合后的行写成前8个字符匹配的单行?

EN

Stack Overflow用户

发布于 2014-05-14 18:05:45

如果您希望根据前8个字符对数据进行分组,则只需:

代码语言:javascript
运行
复制
var groups = File.ReadLines(your_file_name).GroupBy(line => line.Substring(0, 8));

对组中的元素调用Count()的元素进行计数

代码语言:javascript
运行
复制
groups.First().Count()

(您也可以通过foreach (var group in groups)通过groups枚举。)

分组结果将包含文件中的完整行。如果您不想在结果中包含"key“(即前8个字符),则可以使用GroupBy的重载

代码语言:javascript
运行
复制
var groups = File.ReadLines(your_file_name).GroupBy(line => line.Substring(0, 8), line => line.Substring(8));

为了获得包含"key“和连接的行的新输出,您可以使用如下代码:

代码语言:javascript
运行
复制
var groups = File.ReadLines(input_file).GroupBy(line => line.Substring(0, 8), line => line.Substring(8));
File.WriteAllLines(output_file, groups.Select(group => string.Format("{0}{1}", group.Key, string.Join(string.Empty, group))));
票数 0
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23647133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档