C# 文本文件分析错误

本文关键字:错误 文件 文本 | 更新日期: 2023-09-27 18:19:15

>我有一个文本文件,其中每一行都用'n行中的每个值用't分隔。

StreamReader sr = new StreamReader(dlg.FileName);
String ganzes = sr.ReadToEnd();
String[] allezeilen = ganzes.Split(''n');
string[] ssa = allezeilen[i].Split(''t');
foreach (string h in ssa)
{
   String verwendungszw = h.Contains("Verwendungszweck");
}

现在,在 foreach 循环中,我尝试在 ssa 中找到包含 "Verwendungszweck" 的条目。好的,这很容易。但我不需要包含"Verwendungszweck"的条目,我需要下一个。

如何获得下一个参赛作品?

C# 文本文件分析错误

一种选择是使用 LINQ:

string value = ssa.SkipWhile(x => !x.Contains("Verwendungszweck"))
                  .ElementAtOrDefault(1);

如果这就是您所需要的,这可能是最简单的方法。 如果Verwendungszweck不包含ssa元素,或者只有最后一个元素包含,则value为空。

将循环更改为

for (int i = 0; i < ssa.Length; i++) { 
    if (ssa[i].Contains("Verwendungszweck")) {
        String verwendungszw = ssa[i+1];
    }
}

无边界检查和验证搜索字符串是否在数组中的答案:

int pos = Array.IndexOf(ssa, "Verwendungszweck");
string value = ssa[pos + 1];

请注意,您没有定义什么是"i">

StreamReader sr = new StreamReader(dlg.FileName);
String ganzes = sr.ReadToEnd();
String[] allezeilen = ganzes.Split(''n');
foreach (string CurrentLine in allezeilen)
  {
     string[] ssa = CurrentLine.Split(''t');
     for (CurrentRowIndex=0, CurrentRowIndex<ssa.Count, CurrentRowIndex++)
         {
           if ssa[CurrentRowIndex].Contains("Verwendungszweck")
                   verwendungszw =ssa[++CurrentRowIndex] ; // or add it to a list and maybe exit for 
         }
  }