我面临着对 IEnumerable(LINQ) > List(RecyclerView) 的巨大性能影响
本文关键字:RecyclerView List 影响 性能 巨大 LINQ IEnumerable | 更新日期: 2023-09-27 18:17:49
我的项目是一个商业项目,我不能在这里发布,但代码过程是:
- GetAll(LINQ(
- 筛选(林克(
- 将 IEnumerable 结果传递给回收器视图适配器
- 适配器将 IEnumerable<> 转换为列表<>
- 适配器给项目卡充气
对 #4 的性能影响很大,大约 3k 项目最多需要 3 秒。
如何减少性能影响?
我注意到如果我只创建一个new List<>(3000)
,它也需要大约 1.5 秒。
还是我不应该使用列表?
如果我们不使用 List<>,适配器如何通过 [位置] 获取数据。
如何转到IEnumerable中的特定项目
ElementAt()
让我的应用程序在充气时完全死亡。它似乎在每个项目上都ToList()
。
我自己找出问题:
3.将 IE可枚举结果传递给回收器视图适配器
不要将枚举传递给适配器,否则它将在每个项目上重新查询。改为传递列表。