Посоветуйте, как осуществлять быстрый поиск по полям класса? - C#

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

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

Создаю класс (допустим myClass) в котором есть несколько полей x,y,a,b,c итд. Далее создаю
Листинг программы
  1. List<myClass> listtile = new List<myClass>()
и заполняю его экземплярами этого класса. В результате возникает проблема как быстро извлекать из списка нужный элемент. Т.е. нужна процедура которая по двум полям x,y получит нужный элемент. Пока сделал перебор:
Листинг программы
  1. public myClass GetTile(int i, int j)
  2. {
  3. foreach (myClass tile in listtile)
  4. {
  5. if (tile.x == i && tile.y == j)
  6. {
  7. return tile;
  8. }
  9. }
  10. return null;
  11. }
Идеально было бы создать массив массивов и вынести поля x,y в его индекс, получая нужный элемент так myMas[x][y], но x и y идут непоследовательно, могут быть меньше нуля и в процессе жизни приложения в коллекцию добавляются новые элементы. Подскажите пожалуйста каким образом можно реализовать подобный функционал с возможностью быстрого поиска экземпляра моего класса по двум переменным?

Решение задачи: «Посоветуйте, как осуществлять быстрый поиск по полям класса?»

textual
Листинг программы
  1.   public myClass Tile(int i, int j)
  2.         {
  3.             Point p = new Point(i, j);
  4.             if (listtile.ContainsKey(p))
  5.             {
  6.                 return listtile[p];
  7.             }
  8.             else
  9.             {
  10.                 return null;
  11.             }
  12.         }

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


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

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

9   голосов , оценка 4.556 из 5

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

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

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