2012-06-20 16 views
5

我试图读取文件 我发现这里(计算器)的行数,最好的办法读取大文件的行数是使用下面的代码:no .Net 4中的System.IO.File.ReadLines(file).Count()?

int count = System.IO.File.ReadLines(file).Count(); 

然而,我无法编译它。有没有人知道什么是问题?

错误5 'System.Collections.Generic.IEnumerable<string>'不 包含可能被发现为“计数”和没有扩展方法“计数” 接受 'System.Collections.Generic.IEnumerable<string>'类型的第一个参数定义(是 是否缺少using指令或程序集的参考?)

感谢, 的Eyal

+4

你有使用System.Linq的行','在文件的顶部? – dlev

+0

你必须使用'foreach' AFAIK。 –

+0

@dlev - 这是问题所在。我添加了使用'system.linq',现在它确定。谢谢 – Eyalk

回答

12

Count<T>()IEnumerable<T>对象的扩展方法。尝试为命名空间System.Linq添加using声明。

+0

谢谢。它解决了这个问题 – Eyalk

3

你知道:

int count = File.ReadAllLines(@"C:\filepath\file.txt").Length; 

编辑:正如在评论中指出的,这可能(将)大型文件执行不力。对于类似的问题有更详细的解释为什么,查看Determine the number of lines within a text file

+2

“读取**大文件中的行数**”如果您执行了'ReadAllLines',它将需要临时将整个文件存储在RAM中。 'ReadLines'只需要存储当前行。 –

+0

好点。对于大文件,这将是非常低效的。我已经更新了我的答案以链接到类似的问题。 – psych

0

这是从文本文件中读取从窗口申请计数行:

int linecount = System.IO.File.ReadAllLines(@"D:\yfile.txt").Length; 
MessageBox.Show(linecount != null && (!string.IsNullOrEmpty(linecount.ToString())) ? linecount.ToString() : "Unable To Count"); 
+1

这是从窗口应用程序中读取文本文件 – hog

相关问题