2010-12-22 19 views
6
var lines = File.ReadAllLines(filelocation); 
       char[] space = { ',' }; 
       string templine; 
       foreach (string line in lines) 
       {} 

foreach (string line in lines[1:]) nasıl yapmalıyım? o çok fazla veri, bir satır olmamasına rağmenC# ikinci öğeden başlayan değer

foreach (string line in lines.Skip(1)) {...} 

: i LINQ ilk öğesini atlayın ve yukarıda .NET 3.5 veya hedefliyorsanız ikincisi

cevap

21

gelen foreach başlamak istiyorum daha sonra

public static IEnumerable<string> ReadLines(string path) { 
    using(var reader = File.OpenText(path)) { 
     string line; 
     while((line = reader.ReadLine()) != null) { 
      yield return line; 
     } 
    } 
} 

: okuyucu hafıza tüm satırları tutmak zorunda kalmamak için, daha iyi olabilir

foreach(var line in ReadLines(filelocation).Skip(1)) {...} 
+0

+ 1 Vay canına! Bunu bilmiyordum! Teşekkürler! –

+6

Yan not, .NET 4.0'da, tam olarak yapan ['System.IO.File.ReadLines()'] (http://msdn.microsoft.com/en-us/library/dd383503.aspx) yöntemi var. bu. Bu yüzden kendi 'ReadLines()' uygulamanızı uygulamanız gerekmeyecek. –

+0

@Jeff - teşekkürler; iyi bir ek –

İlgili konular