我试图从一个文本文件中读取,该文本文件在写入时具有多个输出,但当我想从我已经输出内容的文本文件中读取时,我希望选择最后一个条目(当写入有5行时,请记住每个条目,我只想要包含“加密文本:”)。
但是,它正在读取包含该内容的行,但我无法使用如何使它只显示包含我指定的字符串的最后一个条目。
using System;
using System.IO;
namespace ReadLastContain
{
class StreamRead
{
static void Main(string[] args)
{
string TempFile = @"C:\Users\Josh\Desktop\text2.txt";
using (var source = new StreamReader(TempFile))
{
string line;
while ((line = source.ReadLine()) != null)
{
if (line.Contains("Ciphered Text:"))
{
Console.WriteLine(line);
}
}
}
}
}
}发布于 2015-11-26 14:58:28
为了更好地阅读,我建议使用LINQ:
string lastCipheredText = File.ReadLines(TempFile)
.LastOrDefault(l => l.Contains("Ciphered Text:"));如果没有这样的线路,那就是null。如果不能使用LINQ:
string lastCipheredText = null;
while ((line = source.ReadLine()) != null)
{
if (line.Contains("Ciphered Text:"))
{
lastCipheredText = line;
}
}它总是被覆盖,所以你会自动得到包含它的最后一行。
发布于 2015-11-26 14:58:14
您可以使用Linq
var text = File
.ReadLines(@"C:\Users\Josh\Desktop\text2.txt")
.LastOrDefault(line => line.Contains("Ciphered Text:"));
if (null != text) // if there´s a text to print out
Console.WriteLine(text);https://stackoverflow.com/questions/33941592
复制相似问题