/// <summary>

Метод должен проверить null и пустой разделитель, разобрать каждый фрагмент как IP-адрес и вернуть коллекцию. Первый недопустимый адрес приводит к FormatException.

Короткий ответ

Что ответить на собеседовании

Метод должен проверить null и пустой разделитель, разобрать каждый фрагмент как IP-адрес и вернуть коллекцию. Первый недопустимый адрес приводит к FormatException.

Подробный разбор

Ответ с пояснениями

Условие

/// /// Возвращает разобранный список IP-адресов /// /// сырой список IP-адресов /// разделитель IP-адресов /// Список IP-адресов /// Выбрасывается, когда raw или separator равны null /// Выбрасывается, когда separator — пустая строка /// Выбрасывается, когда IP-адрес недопустим IReadOnlyCollection<IPAddress> Parse(string raw, string separator);

Ответ

Метод должен проверить null и пустой разделитель, разобрать каждый фрагмент как IP-адрес и вернуть коллекцию. Первый недопустимый адрес приводит к FormatException.

Реализация метода внутри класса:

public IReadOnlyCollection<IPAddress> Parse(string raw, string separator)
{
    if (raw == null) throw new ArgumentNullException(nameof(raw));
    if (separator == null) throw new ArgumentNullException(nameof(separator));
    if (separator.Length == 0)
        throw new ArgumentException("Empty separator", nameof(separator));

    var addresses = new List<IPAddress>();
    foreach (var part in raw.Split(new[] { separator }, StringSplitOptions.None))
    {
        if (!IPAddress.TryParse(part.Trim(), out var address))
            throw new FormatException("Invalid IP address");
        addresses.Add(address);
    }
    return addresses.AsReadOnly();
}

Нужны System, System.Collections.Generic и System.Net. Здесь пустые элементы не пропускаются, пробелы по краям убираются, порядок и дубликаты сохраняются. Если контракт требует иного поведения для пустого raw или строгого IPv4-формата, это следует явно уточнить; TryParse не проверяет доступность адреса.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее