Изучаем работу индексаторов



Индексаторы в C# позволяют обращаться к данным объекта, как если бы это были элементы массива.



Представим, что у нас есть класс ContactList, который хранит контакты в виде словаря.



Индексатор позволит нам добавлять и получать контакты по имени. Например, если мы хотим установить номер телефона для Алисы, можно использовать индексатор, как для массива:

public class ContactList

{

    private Dictionary<string, string> contacts = new Dictionary<string, string>();



    // Индексатор для доступа к контактам

    public string this[string name]

    {

        get => contacts.ContainsKey(name) ? contacts[name] : "Контакт не найден";

        set => contacts[name] = value;

    }

}




Теперь, чтобы использовать этот класс, создадим объект contactList и добавим несколько контактов с помощью индексатора. Например, добавим контакт для Алисы, указав ее номер телефона:

ContactList contactList = new ContactList();

contactList["Алиса"] = "+123456789";  // Устанавливаем контакт для Алисы




Чтобы получить номер телефона Алисы, можно просто использовать индексатор, указав имя контакта:

Console.WriteLine(contactList["Алиса"]);  // Получаем номер Алисы




🔥 Таким образом, индексаторы позволяют нам обращаться к данным внутри объекта, как к элементам массива, обеспечивая компактность и удобство работы с коллекциями данных в C#



➡️ C# Ready | #практика