我有一个文本文件,其中每一行都以\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"
中的条目,我需要下一个条目。
如何获得下一个条目?
答案 0 :(得分:5)
一种选择是使用LINQ:
string value = ssa.SkipWhile(x => !x.Contains("Verwendungszweck"))
.ElementAtOrDefault(1);
如果您需要所有,这可能是最简单的方法。如果value
的元素中没有ssa
,或者只有最后一个元素,则Verwendungszweck
将为null。
答案 1 :(得分:1)
将循环更改为
for (int i = 0; i < ssa.Length; i++) {
if (ssa[i].Contains("Verwendungszweck")) {
String verwendungszw = ssa[i+1];
}
}
答案 2 :(得分:1)
无边界检查和验证搜索字符串在数组中的答案:
int pos = Array.IndexOf(ssa, "Verwendungszweck");
string value = ssa[pos + 1];
答案 3 :(得分:0)
请注意,您没有定义什么是&#39; i&#39;
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
}
}