2012-06-20 19 views
5

Ben iyi yolu büyük bir dosyada satır sayısını okumak için buraya (stackoverflow) bulunan bir dosyanın hat sayısını okumaya çalışıyorum aşağıdaki kodu kullanarak gereğidir Onu derleyemem. Sorunun ne olduğunu biliyor mu?no System.IO.File.ReadLines (dosya) .Count() in. Net 4? Ancak</p> <pre><code>int count = System.IO.File.ReadLines(file).Count(); </code></pre> <p>:

hata 5 'System.Collections.Generic.IEnumerable<string>' bulunamadı sayacın ve tip 'System.Collections.Generic.IEnumerable<string>' bir birinci argüman kabul uzatma yöntemin sayacın için bir tanım içermeyen (bir kullanarak yönergesi veya bir derleme başvurusu eksik olan ?)

sayesinde Eyal

+4

Eğer System.Linq kullanarak çizgi 'var mı; dosyanın üst kısmında'? – dlev

+0

"foreach" AFAIK kullanmanız gerekiyor. –

+0

@dlev - sorun buydu. 'System.linq' kullanarak ekledim ve şimdi tamam. Teşekkürler – Eyalk

cevap

12

Count<T>(), IEnumerable<T> arasındaki nesneler için bir uzatma yöntemidir. System.Linq ad alanı için using ifadesini eklemeyi deneyin.

+0

Teşekkürler. – Eyalk

3

yapmanız Could:

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

DÜZENLEME: Açıklamalarda belirtildiği gibi, bu büyük dosyalar için kötü performans gösterebilir. Daha ayrıntılı açıklama için benzer bir soru için, Determine the number of lines within a text file

+2

"** büyük bir dosyadaki satırların sayısını oku **" Eğer ReadAllLines'i yaptıysanız, tüm dosyayı ramda geçici olarak saklamanız gerekecektir. ReadLines'in sadece mevcut satırı saklaması gerekiyor. –

+0

İyi nokta. Büyük bir dosya için bu çok verimsiz olurdu. Cevabımı benzer bir soruya bağlamak için güncelledim. – psych

0

Bu metin dosyası okuma pencere uygulamasından hattı için saymak geçerli:

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

problemini çözüyor bu, metin dosyasından okunan pencereden gelen satır sayısı için geçerlidir. – hog

İlgili konular