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);
...但它不聞吧...
我知道;我想知道是否有更好的方法來修剪這個「元素」,而不是我的做法。它的工作原理,但它反而噁心。 –
這實際上很難實現。這似乎是你試圖在元素中獲得LabelToFind之後的所有文本(並且我編輯了我的答案以添加可以使用的代碼)。情況並非如此嗎? – Iridium
是的。如果該行是「goTo認爲有害SitOnASpudBucketOtis」我想要「SitOnASpudBucketOtis」 –