本文基于StackOverflow的以下问题收集整理而成。
What is the fastest waty to count newlines in a large .NET string: http://stackoverflow.com/questions/2557002/what-is-the-fastest-way-to-count-newlines-in-a-large-net-string
How to count lines in a string: http://stackoverflow.com/questions/11189331/how-to-count-lines-in-a-string

方法一

private static int Count1(string s)
{
int len = s.Length;
int c = 0;
for (int i=0; i < len; i++)
{
if (s[i] == '\n') c++;
}
return c+1;
}

方法二

private static int Count2(string s)
{
int count = -1;
int index = -1; do
{
count++;
index = s.IndexOf('\n', index + 1);
}
while (index != -1); return count+1;
}

方法三

private static int Count3(string s)
{
return s.Count( c => c == '\n' ) + 1;
}

方法四

private static int Count4(string s)
{
int n = 0;
foreach( var c in s )
{
if ( c == '\n' ) n++;
}
return n+1;
}

方法五

private static int Count5(string s)
{
var a = s.ToCharArray();
int c = 0;
for (int i=0; i < a.Length; i++)
{
if (a[i]=='\n') c++;
}
return c+1;
}

性能测试结果显示,最快到最慢为:方法四,方法二,方法一,方法五和方法二。方法二不仅最慢,而且差了1个数量级。

方法六

int numLines = aDiff.text.Length - aDiff.text.Replace(Environment.NewLine, string.Empty).Length;

方法七

int numLines = aDiff.text.Split('\n').Length;

是为之记。
Alva Chien
2016.9.5

C# VII: 统计文本行数的更多相关文章

  1. linux下统计文本行数的各种方法(二)

    上一篇讲的都是统计单个文件的方法,直接在命令行执行就可以.现在试试脚本的方式,统计多个文件的行数 一.统计目录下所有文件的文件数及所有行数 脚本暂时命名为count.sh,代码如下: #!/bin/b ...

  2. linux下统计文本行数的各种方法

    方法一:awk  awk '{print NR}' test1.txt | tail -n1

  3. linux下统计文本行数的各种方法(一)

    文件test1.txt有17行 方法一: awk '{print NR}' test1.txt | tail -n1

  4. UltraEdit文本行数多变一和一边多

    一.UltraEdit文本行数多行转换成一行 1.文本样式内容 1.qwertyuuiopqwertyuuiopqwertyuuiopqwertyuuiopqwertyuuiopqwertyuuiop ...

  5. linux 设置查看文本行数

    在一般模式下,即摁下esc按键下的模式: 设置行数为:set nu(此处的冒号需要带上) 取消行号为:set nonu(此处的冒号需要带上)

  6. CSS3属性—— line-clamp控制文本行数

    说明: 限制在一个块元素显示的文本的行数. -webkit-line-clamp 是一个 不规范的属性(unsupported WebKit property),它没有出现在 CSS 规范草案中. 为 ...

  7. Linux - wc统计文件行数、单词数或字节数

    一 wc简单介绍 wc命令用来打印文件的文本行数.单词数.字节数等(print the number of newlines, words, and bytes in files).在Windows的 ...

  8. 使用 cloc 统计代码行数

    可能大家都知道用 `wc -l` 命令进行代码行数统计,但是它会将代码中的注释.空行所占用的文本行都统计在内.如果想查看一个 tar 包或一个项目目录中“实际”的代码行数并且不愿意自己去写一个脚本来做 ...

  9. 对文本行按特定字段排序(前N个字符或后N个字符),TCPL 练习5-17

    The C programming language 的关于文本行排序的问题有很多种要求的方式,在对每行的字段排序方面,最简单的是例如对前N个字符或者末位N个字符进行排序,更高一点的要求是,对特殊符号 ...

随机推荐

  1. Vbox中unbuntu15.10与win10共享文件 及开启复制粘贴功能

    学习linux,一直使用的是VMware虚拟机,虽然功能很强大,但总感觉页面切换很麻烦.所以转入Vbox的使用,下面介绍下unbuntu15.10与win10共享文件. 一 共享文件夹 步骤1:启动u ...

  2. opencv::轮廓周围绘制矩形框和圆形框

    基于RDP算法实现,目的是减少多边形轮廓点数 approxPolyDP(InputArray curve, OutputArray approxCurve, double epsilon, bool ...

  3. PHP代码审计基础-高级篇

    高级篇主要讲 1. 熟知各个开源框架历史版本漏洞. 2. 业务逻辑漏洞 3. 多线程引发的漏洞 4. 事务锁引发的漏洞 在高级篇审计中有很多漏洞正常情况下是不存在的只有在特殊情况下才有 PHP常用框架 ...

  4. C#发送电子邮件(SMTP)及outlook.com账号之概要

    这是关于c#发送电子邮件(SMTP)的技术笔记,以”简报“形式呈现. 因为最后成功通过outlook.com发送了邮件,所以,我觉得还是有必要 记录一下其中的要点. 一.技术核心 .net Frame ...

  5. HTTP使用get,post方式连接

    在项目中使用了http的get和post方式连接,发送传输数据: public static String doGet(String httpUrl) { HttpURLConnection conn ...

  6. LaTeX常用篇(一)---公式输入

    目录 1. 序言 2. 命令介绍 3. 公式输入 3.1 无编号公式 3.2 有编号公式 更新时间:2019.10.02 1. 序言   当我们首次在文档中输入公式的时候,我们首先想到的是word,毕 ...

  7. ssh终端远程登陆主机命令--笔记

    ssh终端远程登陆主机命令 ssh user@host ssh optadmin@10.55.45.38

  8. 包管理-rpm

    rpm包管理 程序源代码---->预处理---->编译---->汇编---->链接          数据处理  转为汇编代码  进行汇编    引入库文件    静态编译:. ...

  9. 禁止浏览器缓存- make sure web page is not cached

    如何禁止浏览器缓存,网上搜到的解决方法都测试无效. 基本上全都是 Cache-Control: no-cache Pragma: no-cache Expires: 0 Google了一下,找到了解决 ...

  10. 修改linux系统history命令的条数和格式

    在一次测试环境遇到的情况,发现服务莫名其妙挂了,以为服务有bug,查了一下午,后来一个同事说,是我把服务关了啊.... 是可忍孰不可忍,原生的history命令,只能看到输入的命令历史,看不到什么时候 ...