Я ищу наиболее эффективный способ поиска большого массива класса. У меня есть множество плит и вам нужно найти их по ID, единственный способ, которым я придумал, ниже, хотя я уверен, что есть намного более быстрые способы, возможно, какой-то Array.Find
, но я не уверен в правильности синтаксис. Любая помощь будет принята с благодарностью.Лучший способ поиска массива классов
class Program
{
public static tiles[,] tile = new tiles[100,100];
static void Main(string[] args)
{
for (int x = 0; x < 100; x++)
{
for (int y = 0; y < 100; y++)
{
if (tile[x, y].ID == 2)
{
// DO SOMETHING
}
}
}
}
}
public class tiles
{
public int _ID;
public int ID
{
get { return _ID; }
set { _ID = value; }
}
}
Что заставляет вас думать, что это не самый лучший способ? Кроме того, используйте уникальные имена в верхнем регистре (например, 'Tile') ... если нет веской причины для плюрализации – musefan
В вашем случае существует не более чем последовательный поиск. Если вам действительно нужно сделать это быстро, помимо «плиток», держите дополнительный словарь ссылок с ключом «ID». –
Если данные будут как-то отсортированы, вы должны воспользоваться этим (например, двоичный поиск), в противном случае то, что вы делаете, возможно * так же хорошо, как и получается – Alex