2011-03-02 17 views
5

C#でコーディングし、Windowsフォームを使用しています。 私はテキストファイルを持っており、そこにあるすべての行を数えたいと思っています。テキストファイルの行数をカウントする

ピーター; 25

ジョン; 31

ジェーン;三行ザッツ22

と私は例のためにそれらをカウントします。唯一の.NET 4で動作しますが、一度に一つの行を読み込みます

var count = File.ReadLines("file.txt").Count(); 

答えて

6

最良の方法は、のようなものを使用することです。あなたが一度にメモリにファイル全体をロードするために十分満足している場合は、使用することができます。

var count = File.ReadAllLines("file.txt").Length; 

注意ファイルが大きい場合(あるいは、それはなどのネットワークドライブ上にある)場合、これは長いを取ることができることあなたはUIスレッドからそれをやりたいと思うでしょう。

+1

EnumerateAllLinesがあります定義されている? –

+0

私はvar count = File.ReadAllLines( "file.txt")を使用しました。大変感謝しました! –

+0

@シモン:私の間違いは、File.ReadLinesです。私は答えを修正しました。それでも.NET 4の場合のみです。 –

2

ファイルが大きすぎない場合には、あなたがこれを行うことができます:

File.ReadAllLines(filePath).Length; 

を(これはファイル全体を割り当てるので、パフォーマンスが問題ではないことを確認します)

+0

返答のためのThnaksとそれは働いたが、私は上記の答えを使用しました。 –

1
 string fileName = @"X:\Testfolder\countthis.txt"; 
     int lineCount = 0; 

     FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); 

     StreamReader reader = new StreamReader(fs); 
     Assert.Fail(); 

     while (reader.ReadLine() != null) 
      lineCount++; 
     return lineCount; 
+0

あなたはC#usingステートメントを使用するか、FileStreamでDisposeを呼び出すことを確認する必要があります –

+0

ああ、私はそれについて考えなかった:-)申し訳ありません – Morten

関連する問題