このコード:
const string LabelToFind = "goTo considered Harmful";
using (var file = new StreamReader(DownloadedFile))
{
string line;
while ((line = file.ReadLine()) != null) {
if ((line.Contains(keyVal)) && (line.Contains(LabelToFind))) {
string[] logLineElements = line.Split('|');
foreach (string element in logLineElements) {
if (element.Contains(LabelToFind)) {
return element.Substring(element.IndexOf(LabelToFind, StringComparison.Ordinal) + LabelToFind.Length, element.Length - LabelToFind.Length);
}
}
}
}
}
...「引数が範囲外の例外: インデックスと長さは、文字列内の場所を参照する必要があります。パラメーター名: 長さ」で失敗します (「要素」の先頭と末尾にスペースがある場合 (常にそうです)。私はこれを行うことができると思います:
foreach (string element in logLineElements) {
if (element.Contains(LabelToFind)) {
String s = element.Trim();
return s.Substring(s.IndexOf(LabelToFind, StringComparison.Ordinal) + LabelToFind.Length, s.Length - LabelToFind.Length);
…が、匂いがしない…