Обращение к элементу массива через имя, а не индекс - C#
Формулировка задачи:
Народ.
Кто может сказать или дать ссылку на информацию как сделать так, чтобы можно было обращаться к элементу массива не через индекс, а через имя.
При работе со стандартными источниками данных, можно обращаться к полям таблиц таким образом: My_tabDataTable.Rows[i]["Field_1"]; Хочу такое же использовать, но как такое сделать не понимаю.
Решение задачи: «Обращение к элементу массива через имя, а не индекс»
textual
Листинг программы
using System; using System.Collections.Generic; namespace ConsoleApplication1 { class Program { public class test_class { private Dictionary<string, int> tab_key = new Dictionary<string, int>(); public string[] tab; public test_class() { tab = new string[3]; tab[0] = "Васильевич"; tab_key.Add("Вася", 0); //Добавляем запись в словарь tab[1] = "Петрович"; tab_key.Add("Петя", 1); tab[2] = "Александрович"; tab_key.Add("Саша", 2); //Так же можно добавить несколько ключей к одному индексу tab_key.Add("Александр", 2); } public string this[string name] //Метод для вызова { get { return tab[tab_key[name]]; } set { tab[tab_key[name]] = value; } } } static void Main(string[] args) { test_class tab = new test_class(); Console.WriteLine("Отчество детей в зависимости от имени отца"); Console.WriteLine("Вася - " + tab["Вася"]); //Tab["Вася"] Вызовет public string this[string name] Console.WriteLine("Петя - " + tab["Петя"]); Console.WriteLine("Саша - " + tab["Саша"]); Console.WriteLine("Александр - " + tab["Александр"]); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д