使用String.Join()应用Regex.Match()

时间:2018-04-09 01:52:02

标签: c# regex odata

我正在努力实现.net核心OData接口。

一个字段:FileStore的类型为IEnumerable。为了在excel中获取此字段,我使用string.join将其转换为字符串。现在,我想对它应用一个正则表达式,以获得仅匹配" MKOIP-P0"的值。

return Ok(_assetDiscoveryService.GetAllAssets(tenantGuid).Select(a => new ODataAsset
        { 
        FileStore = a.Type == "VMWare.Compute/virtualMachines" ? string.Join(",", a.VSphereSpecificInfo.DiskInfo.Select(b => b.Filestore) ): null,

        }).AsQueryable());

我知道Regex.Match。但是这会引发错误:Cannot implicitly convert source type "System.Text.RegularExpressions.Match" to target type "String".

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

由于要求检查b.FileStore是否包含常量字符串" MKOIP-P0",我们可以使用string.Contains方法:

FileStore = a.Type == "VMWare.Compute/virtualMachines" ? string.Join(",", a.VSphereSpecificInfo.DiskInfo.Select(b => b.Filestore).Where(fs => fs.Contains("MKOIP-P0")) ): null,