2015-08-13 68 views
3

我已谷歌搜索,看了幾個答案,但我還沒有找到這個解決方案: 我有一個.txt文件是由多個int.max行數。我如何閱讀一個特定的行,其編號是> int.max?我發現this問題其中有列爲能夠從文本文件中讀取行數超過Int.Max的行數

string line = File.ReadLines(FileName).Skip(14).Take(1).First(); 

但不幸的是.Skip()擴展方法不接受長(或在我需要的情況下ULONG)參數的答案。

因此,我開始尋找過載.Skip擴展名(或更準確地使我自己)接受ULong,並發現this哪些沒有幫助我,因爲它涉及到Linq的實體。

請有人可以幫助我瞭解如何讀取文本文件中的特定行的行號爲> int32.Max

感謝

+0

我們說話多大?你可以將文件分割爲 mjw

+0

@mjw是的,我確信我可以做到這一點......我希望不必這樣做。 – MegaMark

回答

6

您可以編寫自己的跳過作爲一個擴展方法

public static IEnumerable<T> MySkip<T>(this IEnumerable<T> list, ulong n) 
{ 
    ulong i = 0; 
    foreach(var item in list) 
    { 
     if (i++ < n) continue; 
     yield return item; 
    } 
} 
+1

'yield break'完全是多餘的。 – Servy

+0

@Eser IEnumerable可以處理什麼限制? – MegaMark

+0

@MegaMark它是* MoveNext *的循環,並獲取* Current *。所以沒有限制。 – Eser