如何读回StringReader循环c#的行?

如何读回StringReader循环c#的行?,c#,split,C#,Split,有没有办法在StringReader中连接回上一条(循环线)?因为我想在一个文本上循环找到一个特定的单词,然后在找到后与前一行连接回去 以下是我迄今为止所做的工作: using (StringReader reader = new StringReader(currentText)) { string line; var prevline = ""; var newline = ""; var des= "";

有没有办法在StringReader中连接回上一条(循环线)?因为我想在一个文本上循环找到一个特定的单词,然后在找到后与前一行连接回去

以下是我迄今为止所做的工作:

using (StringReader reader = new StringReader(currentText))
 {
   string line;
   var prevline = "";
   var newline = "";
   var des= "";
   while ((line = reader.ReadLine()) != null)
   {
     string[] splittedTxt = line.Split(new[] { " " },
      StringSplitOptions.RemoveEmptyEntries);

      if (line.Contains("Fee"))
      {
        for (int i = 0; i < splittedTxt.Length; i++)
        {
         des += splittedTxt[i] + " ";
         newline = prevline +" " + des;
        }
     }
   } 
}
使用(StringReader=新StringReader(currentText))
{
弦线;
var prevline=“”;
var newline=“”;
var des=“”;
而((line=reader.ReadLine())!=null)
{
string[]splittedTxt=line.Split(新[]{”“},
StringSplitOptions.RemoveEmptyEntries);
如果(第行包含(“费用”))
{
for(int i=0;i
StringReader仅用于向前读取文件

字符串的问题在于,为了正确存储和显示字符串,在读取字符串时需要处理编码,并且编码的大小不同

这意味着您需要降低级别,处理流,向前和向后搜索,然后确定和处理字符串的编码差异

有关更多详细信息和代码示例,请参见:

在您的情况下,您似乎只需要上一行。所以我认为不需要反向阅读,您只需要在每次迭代中存储它,然后仅在需要时使用它。看起来你已经拥有了你所需要的大部分,你只需要像这样将行存储在prevline中:

while ((line = reader.ReadLine()) != null)
{
    string[] splittedTxt = line.Split(new[] { " " },
    StringSplitOptions.RemoveEmptyEntries);

    if (line.Contains("Fee"))
    {
        for (int i = 0; i < splittedTxt.Length; i++)
        {
           des += splittedTxt[i] + " ";
           newline = prevline +" " + des;
        }
    }
    prevline = line;
} 
while((line=reader.ReadLine())!=null)
{
string[]splittedTxt=line.Split(新[]{”“},
StringSplitOptions.RemoveEmptyEntries);
如果(第行包含(“费用”))
{
for(int i=0;i
StringReader仅用于向前读取文件

字符串的问题在于,为了正确存储和显示字符串,在读取字符串时需要处理编码,并且编码的大小不同

这意味着您需要降低级别,处理流,向前和向后搜索,然后确定和处理字符串的编码差异

有关更多详细信息和代码示例,请参见:

在您的情况下,您似乎只需要上一行。所以我认为不需要反向阅读,您只需要在每次迭代中存储它,然后仅在需要时使用它。看起来你已经拥有了你所需要的大部分,你只需要像这样将行存储在prevline中:

while ((line = reader.ReadLine()) != null)
{
    string[] splittedTxt = line.Split(new[] { " " },
    StringSplitOptions.RemoveEmptyEntries);

    if (line.Contains("Fee"))
    {
        for (int i = 0; i < splittedTxt.Length; i++)
        {
           des += splittedTxt[i] + " ";
           newline = prevline +" " + des;
        }
    }
    prevline = line;
} 
while((line=reader.ReadLine())!=null)
{
string[]splittedTxt=line.Split(新[]{”“},
StringSplitOptions.RemoveEmptyEntries);
如果(第行包含(“费用”))
{
for(int i=0;i
你想实现什么?举个例子,我实际上是从pdf创建了一个新的数据表,我想在excel中找到包含费用的文本,但在我使用
pdfReader
后,这些行被拆分为文本和不同的行,因此,我想在找到单词后加入这一行代码中有pdfreader吗?那一行应该在itextSharp下我想共享pdf阅读器代码片段你想实现什么?通过一些示例详细说明我实际上从pdf创建了一个新的数据表,我想找到包含excel中的费用的文本,但是在我使用了
pdfReader
之后,这些行被分割成了文本和不同的行,所以我想在找到单词后再把这行连接起来。代码中有pdfReader吗?那一行应该在itextSharp下,我想共享pdf阅读器代码段