我有一个Windows Phone项目,需要搜索大约70,000个XML条目的数据库,选择与查询匹配的项目,并返回这些项目以显示在listBox中。
使用LINQ,我可以在合理的时间内(<2秒)进行实际搜索。但是,看起来加载带有大量条目的listBox需要相当不合理的时间。因此,我想显示10个项目,然后允许用户按下Next,如果他们想要查看更多。
我遇到的问题是对IEnumerable类型的对象执行任何类型的操作都需要一段完全不合理的时间。这包括Count,。Take(10)和.ToList();这些操作中的每一个都需要大约一分钟的时间才能运行,这对我正在编写的软件来说是完全不合理的。
最终,我不关心数据的格式,只要我可以轻松按位置访问条目。我只是在寻找一种能让我轻松输出这些数据的解决方案。
答案 0 :(得分:0)
您没有明确说明这一点,但我假设您正在使用XElement或XmlElement。您应该首先将XML反序列化为对象。 (有一个工具可以从给定的XML生成XSD,然后您可以从XSD获取类。)
之后你的LINQ应该更快,数据也需要更少的RAM。
如果不对,请更新您的问题并提供详细信息。