string.StartsWith 列表中的元素

string.StartsWith element from the list

这是我的代码:

private bool isSpecialZone(string zoneNumber, string clientName)
{
    var notSpecialZones = new List<string> { "200", "201", "202" };
    return clientName.Contains("XXX") && !zoneNumber.StartsWith("200") && !zoneNumber.StartsWith("201") && !zoneNumber.StartsWith("202");
}

我想让它更简洁,而不是到处重复 "StartsWith" 只有一个声明。有没有办法做到这一点?

下一个 linq 语句完全符合您的要求。 一旦它看到 zoneNumber 以 'notSpecialZone' 开头,它就会停止并 returns。 通过提供 '!'我们反转结果,使其与方法匹配。

private bool isSpecialZone(string zoneNumber, string clientName)
{
    var notSpecialZones = new List<string> { "200", "201", "202" };
    return clientName.Contains("XXX") && !notSpecialZones.Any(zone => zoneNumber.StartsWith(zone)); 
}