在 IEnumerable 上快速操作

本文关键字:操作 IEnumerable | 更新日期: 2023-09-27 18:32:13

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

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

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

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

在 IEnumerable 上快速操作

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

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

如果不正确,请更新您的问题以提供更多详细信息。