Я пытался итерация через MatchCollection
из Regex
выражения в пределах foreach
цикла, используя ключевое слово var
компилятор делает вывод, что глава является объектом, который дает мне ошибку, что Value
свойства неизвестно.Почему компилятор не может вывести правильный тип foreach из Regex.Matches?
foreach (var chapter in ChapterExtractor.Matches(page.RawContent))
{
chapter.Add(chapter.Value); // Does not compile!
}
когда var
заменяется Match
она прекрасно работает.
foreach (Match chapter in ChapterExtractor.Matches(page.RawContent))
{
chapter.Add(chapter.Value); // OK!
}
Пример, представленный на MSDN (http://msdn.microsoft.com/pt-br/library/system.text.regularexpressions.matchcollection(v=vs.110).aspx) также использует Match
класс в цикле foreach
.
Но, не должен ли компилятор, что chapter
имеет тип Match
вместо object
? Итак, кажется, что компилятор неявно выполняет листинг с object
до Match
. Это правда?