我不明白为什么var m不会返回Match.我没有检查,但它似乎返回一个对象.
foreach (var m in Regex.Matches("dummy text","(mm)")) var sz = m.Groups[1]; // error CS1061: 'object' does not contain a deFinition for 'Groups' and no extension method 'Groups' accepting a first argument of type 'object' Could be found (are you missing a using directive or an assembly reference?) foreach (Match m in Regex.Matches("dummy text","(mm)")) var sz = m.Groups[1]; //ok
解决方法
MatchCollection实现IEnumerable而不是IEnumerable< Match>因此编译器只能将变量的类型推断为对象而不是匹配.