从行数超过 Int.Max 的文本文件中读取行
Read Line From Text File With More Than Int.Max Number of Lines
我用谷歌搜索并查看了几个答案,但我还没有找到解决方案:
我有一个包含超过 int.max 行的 .txt 文件。如何读取编号为 > int.max 的特定行?我发现 this 问题的答案被列为能够
string line = File.ReadLines(FileName).Skip(14).Take(1).First();
但不幸的是,.Skip() 扩展方法不接受 Long(或者在我需要的情况下为 ULong)参数。
所以我开始寻求重载 .Skip 扩展名(或更准确地说是我自己的)以接受 ULong 并发现 this 这对我没有帮助,因为它与 Linq to entities 有关。
有人可以帮助我了解如何从行号为 > int32.Max
的文本文件中读取特定行
谢谢
您可以编写自己的 Skip 作为扩展方法
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;
}
}
我用谷歌搜索并查看了几个答案,但我还没有找到解决方案: 我有一个包含超过 int.max 行的 .txt 文件。如何读取编号为 > int.max 的特定行?我发现 this 问题的答案被列为能够
string line = File.ReadLines(FileName).Skip(14).Take(1).First();
但不幸的是,.Skip() 扩展方法不接受 Long(或者在我需要的情况下为 ULong)参数。
所以我开始寻求重载 .Skip 扩展名(或更准确地说是我自己的)以接受 ULong 并发现 this 这对我没有帮助,因为它与 Linq to entities 有关。
有人可以帮助我了解如何从行号为 > int32.Max
的文本文件中读取特定行谢谢
您可以编写自己的 Skip 作为扩展方法
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;
}
}