我有一个很简单的问题,我不能相信我不能自己回答.但是,你去了.
我有一个大的静态列表(城市,纬度和经度),我想在我的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不会花时间解析吗?
我想我有能力在这里写代码 – 我只是不知道最好的方法是开始.我对加载速度感兴趣(更重要的是)运行时间比任何事情更多.
任何帮助非常感谢 – 这里第一个问题,所以我希望我没有做任何骨头.
克里斯
解决方法
如果从xap加载xml文档为您工作..
这是我发布的一个项目,展示了通过XDocument / LINQ从XAP加载xml文档,并将数据绑定到列表框以供参考.