Посоветуйте, как осуществлять быстрый поиск по полям класса? - 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;
}
}