Добавление события, реагирующего на изменение списка List1

Новое присваивание List1 можно перехватить сеттером и вызвать событие. Изменения элементов обычного List этот сеттер не увидит — для них нужна ObservableCollection или методы-обёртки.

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

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

Новое присваивание List1 можно перехватить сеттером и вызвать событие. Изменения элементов обычного List этот сеттер не увидит — для них нужна ObservableCollection или методы-обёртки.

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

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

Условие

В классе SomeClass есть свойство List1. Необходимо внедрить событие List1Changed, которое должно срабатывать каждый раз, когда список List1 изменяется (например, после присваивания нового значения). Это событие следует вызвать в текущем коде при выполнении фильтрации List1 в методе Method1().

public class SomeClass
{
    public List<string> List1 {get;set;} = new List<string>() {"string", "string2", "string3"};

    public void Method1()
    {
        var list2 = new List<string>(List1.Where(x => x.StartsWith()));
    }
}

Ответ

Новое присваивание List1 можно перехватить сеттером и вызвать событие. Изменения элементов обычного List этот сеттер не увидит — для них нужна ObservableCollection или методы-обёртки.

Пример уведомления именно о замене списка:

public class SomeClass
{
    private List<string> list1 = new() { "string", "string2", "string3" };
    public event EventHandler? List1Changed;
    public List<string> List1 {
        get => list1;
        set {
            ArgumentNullException.ThrowIfNull(value);
            if (ReferenceEquals(list1, value)) return;
            list1 = value;
            List1Changed?.Invoke(this, EventArgs.Empty);
        }
    }
    public void Method1(string prefix) =>
        List1 = List1.Where(x => x.StartsWith(prefix, StringComparison.Ordinal)).ToList();
}

В исходнике фильтрация лишь создаёт локальный list2 и не меняет List1. Кроме того, StartsWith требует аргумент. Для уведомлений об Add/Remove используйте ObservableCollection и CollectionChanged.

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

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

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

Подробнее