String[] results = myRegEx.Matches(myString)[0].Groups["Group1"].Captures.Select(x => x.Value).ToArray<String>();
.Captures引用应该让我进入CaptureCollection,它实现了IEnumerable,而IEnumerable提供了一个扩展方法,我在这里尝试选择变换,为集合中的每个项目捕获Value属性并将其推送到字符串数组中.
然而,编译器咆哮着我
‘System.Text.RegularExpressions.CaptureCollection does not contain a
deFinition for ‘Select’ and no extension method ‘Select’ accepting a
first argument of type
System.Text.RegularExpression.CaptureCollection’ Could be found.
我可以通过从Captures对象调用.Cast< Capture>()方法来解决这个问题,然后使用转换来调用select,而转换又会访问Value属性,但考虑到对象已经是Capture对象,这看起来有点傻.
我究竟做错了什么?非常感谢你指出我本来应该是一个非常明显的疏忽.
解决方法 你没有做错任何事. MatchCollection和CaptureCollection仅实现IEnumerable接口而不是IEnumerable< T>这就是为什么你需要Cast< T>或OfType< T>
总结以上是内存溢出为你收集整理的c# – 为什么我不能从CaptureCollection对象中调用Select()?全部内容,希望文章能够帮你解决c# – 为什么我不能从CaptureCollection对象中调用Select()?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)