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