C# 独立存储—从最后一行到第一行读取文本文件

C# 独立存储—从最后一行到第一行读取文本文件,c#,windows-phone-8,longlistselector,C#,Windows Phone 8,Longlistselector,我试图读取一个txt文件,从最后一行到第一行。实际上是这样的: randomWord1 randomWord2 randomWord3 ... 我需要开始阅读randomWord3,回到randomWord1,将每一行放在我已经测试过的长列表选择器中 我实际上可以通过以下代码从1读到3: while (!reader.EndOfStream){ rigaStorico.Add(new Storico(reader.ReadLine())); } 我怎么能做到完全一样,但从3到1?我想

我试图读取一个txt文件,从最后一行到第一行。实际上是这样的:

randomWord1
randomWord2
randomWord3
...
我需要开始阅读randomWord3,回到randomWord1,将每一行放在我已经测试过的长列表选择器中

我实际上可以通过以下代码从1读到3:

while (!reader.EndOfStream){
    rigaStorico.Add(new Storico(reader.ReadLine()));
}
我怎么能做到完全一样,但从3到1?我想不出来


p、 当然,行数是未知的

可能是一个简单的解决方案-因为您不知道行数,请阅读所有行数,然后添加到LLS:

List<Storico> temp = new List<Storico>();
while (!reader.EndOfStream)
{
    temp.Add(new Storico(reader.ReadLine()));
}
for(int n = temp.Count - 1; n >= 0; n--)
    rigaStorico.Add(temp[n]);
编辑
尽管此解决方案有效,但它需要一个临时列表-事实上@wiredparie提供了更好的解决方案,可能是一个简单的解决方案-因为您不知道行数,请将它们全部读取,然后添加到LLS:

List<Storico> temp = new List<Storico>();
while (!reader.EndOfStream)
{
    temp.Add(new Storico(reader.ReadLine()));
}
for(int n = temp.Count - 1; n >= 0; n--)
    rigaStorico.Add(temp[n]);
编辑
尽管此解决方案有效,但它需要一个临时列表-事实上@wiredparie提供了更好的解决方案,类似的解决方案应该适合您

public void ReadBackwards(string fileName)
{         
    StreamReader fileStream = new StreamReader(fileName);

    fileStream.BaseStream.Seek(1024, SeekOrigin.End);
    char[] arr = new char[1024];
    while (fileStream.BaseStream.Position > 0)
    {
       arr.Initialize();
       fileStream.BaseStream.Seek(1024, SeekOrigin.Current);
       int bytesRead = fileStream.Read(arr, 0, 1024);
    }
}

//KH.

像这样的东西应该适合你

public void ReadBackwards(string fileName)
{         
    StreamReader fileStream = new StreamReader(fileName);

    fileStream.BaseStream.Seek(1024, SeekOrigin.End);
    char[] arr = new char[1024];
    while (fileStream.BaseStream.Position > 0)
    {
       arr.Initialize();
       fileStream.BaseStream.Seek(1024, SeekOrigin.Current);
       int bytesRead = fileStream.Read(arr, 0, 1024);
    }
}

//KH.

有两个使用内置功能的简单选项:

使用反向:


有两个使用内置功能的简单选项:

使用反向:


这是如何回答这个问题的?您显示的代码既不处理列表,也不处理下线字符。这如何回答问题?您显示的代码既不处理列表,也不处理EOL字符。