读取一个文件的最后30000行如果你有一个csv文件,它的数据会不时增加。现在我需要做的是阅读最后30,000行。代码:string[]lines=File.ReadAllLines(Filename).Where(r=>r.ToString()!="").ToArray();intcount=lines.Count();intloopCount=计数>30000?计数-30000:0;对于(inti=loopCount;ir.ToString()!="").ToArray();intcount=lines.Count();列表orderList=newList();intloopCount=计数>30000?30000:0;对于(inti=count-1;i>loopCount;i--){string[]columns=lines[i].Split(',');orderList.Add(列[2]);解决方案2:如果您使用的是.NETFramework3.5,如以下评论中所述,您不能使用File.ReadLines()方法,因为它自.NET4.0起可用。您可以像这样使用StreamReader:Listlines=newList();列表orderList=newList();弦线;整数计数=0;使用(StreamReaderreader=newStreamReader("c:\Bethlehem-Deployment.txt")){while((line=reader.ReadLine())!=null){lines.Add(line);计数++;}}intloopCount=(count>30000)?30000:0;对于(inti=count-1;i>loopCount;i--){string[]columns=lines[i].Split(',');orderList.Add(列[0]);您可以使用File.ReadLines,您可以在返回整个集合之前开始枚举字符串集合。之后,您可以使用linq使事情变得更容易。Reverse将颠倒收集顺序,Take将取走n个项目。现在再次使用Reverse以原始格式获取最后n行。varlines=File.ReadLines(文件名).Reverse().Take(30000).Reverse();如果您使用的是.NET3.5或更早版本,则可以创建自己的方法,其工作方式与File.ReadLines相同。这是最初由@Jon编写的方法的代码publicIEnumerableReadLines(stringfile){using(TextReaderreader=File.OpenText(file)){stringline;while((line=reader.ReadLine())!=null){yieldreturnline;}}}现在你可以像上面的语句一样在这个函数上使用linq。varlines=ReadLines(文件名).Reverse().Take(30000).Reverse();问题是您不知道从哪里开始读取文件以获取最后30,000行。除非您想维护一个单独的行偏移索引,否则您可以从头开始读取文件并只保留最后30,000行,或者您可以从末尾开始计算行数并向后工作。如果文件非常大并且您只需要几行,则最后一种方法可以使用。然而,30,000似乎不是“几行”,所以这里有一种方法可以从头读取文件并使用队列来保留最后的30,000行:varfilename=@"...";varlinesToRead=30000;变种队列=新队列();使用(varstreamReader=File.OpenText(fileName)){while(!streamReader.EndOfStream){queue.Enqueue(streamReader.ReadLine());if(queue.Count>linesToRead)queue.Dequeue();现在您可以访问存储在队列中的内容。此类实现IEnumerable以允许您使用foreach迭代行。但是,如果要随机访问,就必须使用ToArray方法将队列转为数组,这样会增加计算的开销。这个解决方案是内存高效的,因为内存中最多必须保留30,000行,并且垃圾收集器可以在需要时释放任何额外的行。使用File.ReadAllLines会将所有行一次拉入内存,这可能会增加进程所需的内存。或者我有不同的意识形态。尝试将csv拆分为AD、EG等类别并访问您需要的第一个字符。或者您可以使用实体计数拆分数据。例如,每个文件将包含15.000个实体。还有一个文本文件,其中包含有关入侵和位置的微小数据。txt文件:以上为C#学习教程:阅读文件最后30000行,分享全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——entitesID|在哪个.Csv...。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: