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

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

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

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

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

textual
Листинг программы
  public myClass Tile(int i, int j)
        {
            Point p = new Point(i, j);
            if (listtile.ContainsKey(p))
            {
                return listtile[p];
            }
            else
            {
                return null;
            }
        }

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


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

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

9   голосов , оценка 4.556 из 5
Похожие ответы