У меня есть вопрос, который так просто, я не могу поверить, что не могу ответить сам. Но, вы идете.
У меня есть большой статический список (из городов, широт и долгот), который я хочу использовать в моем приложении Windows Phone 7 Silverlight. Их насчитывается около 10 000 человек. Я хотел бы встроить эти данные статически в мое приложение и получить доступ к нему в массиве (мне нужно регулярно перебирать весь список в коде).
Что будет моим самым эффективным способом хранения этого? Я немного похожа на старую школу, поэтому я посчитал, что это самый быстрый способ сделать это:
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 не займет время для разбора?
Я думаю, что могу писать код здесь - я просто не уверен, с чего лучше всего начать. Меня интересует скорость загрузки и (что еще более важно) доступ к времени выполнения больше всего.
Любая помощь очень ценится - первый вопрос здесь, поэтому я надеюсь, что я ничего не сделал.
Крис