我面临对 IEnumerable(LINQ) >列表(回收器视图)的巨大性能影响



我的项目是一个商业项目,我不能在这里发布,但代码过程是:

  1. GetAll(LINQ(
  2. 筛选(林克(
  3. 将 IEnumerable 结果传递给回收器视图适配器
  4. 适配器将 IEnumerable<> 转换为列表<>
  5. 适配器给项目卡充气

对 #4 的性能影响很大,大约 3k 项目最多需要 3 秒。

如何减少性能影响?

我注意到如果我只创建一个new List<>(3000),它也需要大约 1.5 秒。

还是我不应该使用列表?

如果我们不使用 List<>,适配器如何通过 [位置] 获取数据。

如何转到IEnumerable中的特定项目

ElementAt()让我的应用程序在充气时完全死亡。它似乎在每个项目上都ToList()

我自己找出问题:

3.将 IE可枚举结果传递给回收器视图适配器

不要将枚举传递给适配器,否则它将在每个项目上重新查询。改为传递列表。

最新更新