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"
的条目,我需要下一个。
如何获得下一个参赛作品?
一种选择是使用 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
}
}