我尝试使用lambda模拟以下python代码:
checkName = lambda list, func: func([re.search(x, name, re.I) for x in list])
if checkName(["(pdtv|hdtv|dsr|tvrip).(xvid|x264)"], all) and not checkName(["(720|1080)[pi]"], all):
return "SDTV"
elif checkName(["720p", "hdtv", "x264"], all) or checkName(["hr.ws.pdtv.x264"], any):
return "HDTV"
else:
return Quality.UNKNOWN
我为长格式创建了以下C代码,但我确信可以使用lambda表达式将其缩短:
^{pr2}$如果能帮助我提高理解力,我将不胜感激!因为我相信有一个更短/更简单的方法!在
所以在玩了几次之后,我把它简化为:
private static bool CheckName(List<string> evals,
string name,
bool all)
{
if (all == true)
{
return evals.All(n =>
{
return Regex.IsMatch(name, n, RegexOptions.IgnoreCase);
});
}
else
// any
{
return evals.Any(n =>
{
return Regex.IsMatch(name, n, RegexOptions.IgnoreCase);
});
}
}
但是必须有一个使用类似python代码的函数的等价物?在
像这样:
功能:
^{pr2}$相关问题 更多 >
编程相关推荐