1

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

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

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

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

4

1 回答 1

0

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

之后,您的 LINQ 应该会更快,并且数据也应该需要更少的 RAM。

如果这不正确,请使用更多详细信息更新您的问题。

于 2013-01-03T00:38:11.607 回答