Tag: peek

C#:实现NetworkStream.Peek?

目前,C#中没有NetworkStream.Peek方法。 实现像NetworkStream.ReadByte这样的函数的最佳方法是什么,除了返回的byte实际上没有从Stream删除?

IEnumerator是否有“HasNext”方法?

使用Java Iterator ,我使用hasNext方法来确定迭代是否有更多元素(不消耗元素) – 因此, hasNext就像一个“ Peek ”方法。 我的问题:C#的通用IEnumerator是否有类似“ hasNext ”或“ Peek ”的方法?

StreamReader.Readline()真的是计算文件中行数的最快方法吗?

在环顾四周的时候,我发现了很多关于如何计算文件中行数的讨论。 例如这三个: c#如何计算文本文件中的行数 确定文本文件中的行数 如何快速计算线? 那么,我继续前进并最终使用了我能找到的最有效(至少是内存方式?)方法: private static int countFileLines(string filePath) { using (StreamReader r = new StreamReader(filePath)) { int i = 0; while (r.ReadLine() != null) { i++; } return i; } } 但是当文件中的行本身非常长时,这需要永远。 真的没有更快的解决方案吗? 我一直在尝试使用StreamReader.Read()或StreamReader.Peek()但是我不能(或者不知道如何)让它们中的任何一个一旦有’东西’就转移到下一行(字符?文字?)。 有什么想法吗? 结论/结果 (根据提供的答案进行一些测试后): 我在两个不同的文件上测试了下面的5种方法,我得到了一致的结果,似乎表明普通的StreamReader.ReadLine()仍然是最快的方法之一…说实话,我对所有评论后感到困惑在答案中讨论。 文件#1: 大小:3,631 KB 行数:56,870 文件#1的结果以秒为单位: 0.02 – > ReadLine方法。 0.04 – >读取方法。 0.29 – […]