Обращение к элементу массива через имя, а не индекс - C#

Узнай цену своей работы

Формулировка задачи:

Народ. Кто может сказать или дать ссылку на информацию как сделать так, чтобы можно было обращаться к элементу массива не через индекс, а через имя. При работе со стандартными источниками данных, можно обращаться к полям таблиц таким образом: My_tabDataTable.Rows[i]["Field_1"]; Хочу такое же использовать, но как такое сделать не понимаю.

Решение задачи: «Обращение к элементу массива через имя, а не индекс»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace ConsoleApplication1
  5. {
  6.     class Program
  7.     {
  8.         public class test_class
  9.         {
  10.             private Dictionary<string, int> tab_key = new Dictionary<string, int>();
  11.             public string[] tab;
  12.  
  13.             public test_class()
  14.             {
  15.                 tab = new string[3];
  16.                 tab[0] = "Васильевич";
  17.                 tab_key.Add("Вася", 0);     //Добавляем запись в словарь
  18.  
  19.                 tab[1] = "Петрович";
  20.                 tab_key.Add("Петя", 1);
  21.  
  22.                 tab[2] = "Александрович";
  23.                 tab_key.Add("Саша", 2);         //Так же можно добавить несколько ключей к одному индексу
  24.                 tab_key.Add("Александр", 2);
  25.             }
  26.             public string this[string name]     //Метод для вызова
  27.             {
  28.                 get
  29.                 {
  30.                     return tab[tab_key[name]];
  31.                 }
  32.                 set
  33.                 {
  34.                     tab[tab_key[name]] = value;
  35.                 }
  36.             }
  37.         }
  38.  
  39.         static void Main(string[] args)
  40.         {
  41.             test_class tab = new test_class();
  42.             Console.WriteLine("Отчество детей в зависимости от имени отца");
  43.             Console.WriteLine("Вася - " + tab["Вася"]); //Tab["Вася"] Вызовет public string this[string name]
  44.             Console.WriteLine("Петя - " + tab["Петя"]);
  45.             Console.WriteLine("Саша - " + tab["Саша"]);
  46.             Console.WriteLine("Александр - " + tab["Александр"]);
  47.         }
  48.     }
  49. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы