IEnumerable上的快速操作?

时间:2012-04-26 04:00:54

标签: c# silverlight windows-phone

我有一个Windows Phone项目,需要搜索大约70,000个XML条目的数据库,选择与查询匹配的项目,并返回这些项目以显示在listBox中。

使用LINQ,我可以在合理的时间内(<2秒)进行实际搜索。但是,看起来加载带有大量条目的listBox需要相当不合理的时间。因此,我想显示10个项目,然后允许用户按下Next,如果他们想要查看更多。

我遇到的问题是对IEnumerable类型的对象执行任何类型的操作都需要一段完全不合理的时间。这包括Count,。Take(10)和.ToList();这些操作中的每一个都需要大约一分钟的时间才能运行,这对我正在编写的软件来说是完全不合理的。

最终,我不关心数据的格式,只要我可以轻松按位置访问条目。我只是在寻找一种能让我轻松输出这些数据的解决方案。

1 个答案:

答案 0 :(得分:0)

您没有明确说明这一点,但我假设您正在使用XElement或XmlElement。您应该首先将XML反序列化为对象。 (有一个工具可以从给定的XML生成XSD,然后您可以从XSD获取类。)

之后你的LINQ应该更快,数据也需要更少的RAM。

如果不对,请更新您的问题并提供详细信息。