如何解决循环中的LINQ查询检查空条件并寻找更干净的方式编写此代码
我有代码遍历JSON文件中的数据,因此基于第一个,或第二个或第三个变量的通配符条件,我正在执行正则表达式,然后将其写出,但我真的不喜欢它的方式看起来。
因此,可读性很重要,而且性能很高,但是数据完整性和错误处理等也很重要
写这个的更好的方法是什么?
for loop....
var firstWildCard = vidaBiliy.SponsorPackage.Where(s => Regex.IsMatch(s.ExternalPolicy,$"^.*{Regex.Escape(HcdpPmtFctrCd)}{Regex.Escape(hccCpmtFctrCd)}$")).FirstOrDefault()?.PackageID;
if(firstWildCard == null)
{
var secondWildCard = vidaBiliy.SponsorPackage.Where(s => Regex.IsMatch(s.ExternalPolicy,$"^{Regex.Escape(hcdpPlnCvgCD)}.*{Regex.Escape(hccCpmtFctrCd)}$")).FirstOrDefault()?.PackageID;
if(secondWildCard == null)
{
var thirdWildCard = vidaBiliy.SponsorPackage.Where(s => Regex.IsMatch(s.ExternalPolicy,$"^{Regex.Escape(hcdpPlnCvgCD)}{Regex.Escape(HcdpPmtFctrCd)}.*$")).FirstOrDefault()?.PackageID;
}
}
解决方法
检查一下
var patterns = new string[]{
$"^.*{Regex.Escape(HcdpPmtFctrCd)}{Regex.Escape(hccCpmtFctrCd)}$",$"^{Regex.Escape(hcdpPlnCvgCD)}.*{Regex.Escape(hccCpmtFctrCd)}$",$"^{Regex.Escape(hcdpPlnCvgCD)}{Regex.Escape(HcdpPmtFctrCd)}.*$"
}
var wildcards = new List<String>();
foreach (var pattern in patterns)
{
var matchResult = vidaBiliy.SponsorPackage.Where(s => Regex.IsMatch(s.ExternalPolicy,pattern)).FirstOrDefault()?.PackageID;
wildcards.Add(matchResult);
if (matchResult != null)
break;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。