Посоветуйте, как осуществлять быстрый поиск по полям класса? - 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;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д