string.StartsWith элемент из списка - PullRequest
0 голосов
/ 20 ноября 2018

Вот мой код:

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», везде есть одно утверждение.Есть ли способ сделать это?

1 Ответ

0 голосов
/ 20 ноября 2018

Этот следующий оператор linq делает именно то, что вы хотите.Как только он увидит, что zoneNumber начинается с notSpecialZone, он останавливается и возвращается.Поставляя '!'мы инвертируем результат, чтобы он соответствовал методу.

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)); 
}
...