gpt4 book ai didi

c# - netstandard - 正则表达式,无法访问组名

转载 作者:太空狗 更新时间:2023-10-30 00:48:37 25 4
gpt4 key购买 nike

在 .NET Core 和 .NET Framework 4.x 中,以下代码按预期工作:

var match = Regex.Match(src, pattern)
.Groups
.Cast<Group>()
.Where(grp => grp.Name.StartsWith("val"));

但是,在 netstandard 中,Group 中的 Name 属性没有了。我想知道是否有新的方法来实现同样的事情,或者这是否是一个错误。


编辑:我最初认为这是一个 netstandard 2.0 问题,但看起来所有 netstandard 版本都缺少该属性。

目前的解决方法:.Where(grp => ((string)((dynamic)grp).Name).StartsWith("val")),这显然不太理想。

最佳答案

根据 its entry on apisof.net此属性仅在 .NET Core 1.1 和 .NET Framework 4.7 及更高版本上可用,并且尚未添加到任何版本的 .NET Standard 中。在其他平台(较低的 .NET 版本、Xamarin 等)上,您的解决方法可能会在运行时引发异常。

如果您绝对需要在库中使用此属性,我建议将多目标定位到 net47;netcoreapp1.1,而不是定位到 .NET Standard 的一个版本。

即使您以 4.5 为目标,您也会在调试器中看到该属性,因为您实际上是在 .NET 4.7 上运行(因为它是您安装的版本)并且调试器将向您显示运行时可用的所有内容。但是,编译器会限制您所针对的 .NET(Framework/Standard/…)的最低版本。

关于c# - netstandard - 正则表达式,无法访问组名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44876468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com