У меня вопрос настолько простой, что я не могу поверить, что не могу на него ответить. Но вот и все.
У меня есть большой статический список (городов, широт и долгот), который я хочу использовать в своем приложении Windows Phone 7 Silverlight. Их около 10 тысяч. Я' Мне бы хотелось статически встроить эти данные в свое приложение и получить к ним доступ в виде массива (мне нужно довольно часто циклически просматривать весь список в коде).
Что будет моим наиболее эффективным средством их хранения? Я немного сторонник олдскула, поэтому я подумал, что самый быстрый способ сделать это:
public struct City
{
public string name;
public double lat;
public double lon;
};
, а затем ...
private City[] cc = new City[10000];
public CityDists()
{
cc[2].name = "Lae, Papua New Guinea"; cc[2].lat = 123; cc[2].lon = 123;
cc[3].name = "Rabaul, Papua New Guinea"; cc[3].lat = 123; cc[3].lon = 123;
cc[4].name = "Angmagssalik, Greenland"; cc[4].lat = 123; cc[4].lon = 123;
cc[5].name = "Angissoq, Greenland"; cc[5].lat = 123; cc[5].lon = 123;
...
Однако это гудит с ошибкой "нехватки памяти" перед кодом фактически запускается (я предполагаю, что сам код оказался слишком большим для загрузки в память).
Все, что я читаю в Интернете, подсказывает мне использовать ресурс или файл XML, а затем десериализовать его в экземпляры класса. Но может ли это быть так же быстро, как использование структуры? Разве XML не займет много времени на синтаксический анализ?
Я думаю, что я способен написать здесь код - я просто не уверен, с чего лучше всего начать. Я' m больше всего интересует скорость загрузки и (что более важно) доступ во время выполнения.
Любая помощь очень ценится - первый вопрос здесь, поэтому я надеюсь, что не сделал ничего тупоголового.
Chris