在C#中使用大型静态数组(Windows Phone 7上的Silverlight)

Chr*_*Rae 10 c# windows arrays silverlight windows-phone-7

我有一个很简单的问题,我无法相信自己无法回答.但是,你去吧.

我有一个大型静态列表(城市,纬度和经度),我想在我的Windows Phone 7 Silverlight应用程序中使用.大约有10,000个.我想在我的应用程序中静态嵌入这些数据并在数组中访问它(我需要在代码中循环遍历整个列表).

什么是我最有效的存储方式?我有点老派,所以我认为最快的方法是:

public struct City
{
    public string name;
    public double lat;
    public double lon;
};
Run Code Online (Sandbox Code Playgroud)

然后...

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;
...
Run Code Online (Sandbox Code Playgroud)

但是,在代码实际运行之前,这会导致"内存不足"错误(我假设代码本身最终导致加载到内存中).

我在网上阅读的所有内容都告诉我使用XML资源或文件,然后将其反序列化为类的实例.但这真的可以像使用结构一样快吗?XML需要很长时间才能解析吗?

我想我能够在这里编写代码 - 我只是不确定最好的方法是什么.我对加载速度和(更重要的是)运行时访问感兴趣.

任何帮助非常感谢 - 这里的第一个问题,所以我希望我没有做任何愚蠢的事情.

克里斯

Mic*_*k N 1

如果从 xap 加载 xml 文档适合您..

这是我发布的一个项目,演示了通过 XDocument/LINQ 从 XAP 加载 xml 文档,并将数据绑定到列表框以供参考。

将 Linq 数据源绑定到列表框