我面临着对IEnumerable(LINQ)>的巨大性能影响。列表(RecyclerView)

时间:2016-11-14 03:58:48

标签: c# android sql linq xamarin

我的项目是一个我无法在此发布的商业项目,但代码程序是:

  1. GETALL(LINQ)
  2. 过滤(LINQ)
  3. 将IEnumerable结果传递给RecyclerView Adapter
  4. 适配器转换IEnumerable<>列出<>
  5. 适配器为ItemCards充气
  6. 对#4产生重大影响,大约3k项目需要3秒钟。

    如何降低对性能的影响?

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

    或者我应该不使用List?

    如果我们不使用List&lt;&gt;,适配器如何通过[position]获取数据。

    How to go to particular Item in IEnumerable

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

1 个答案:

答案 0 :(得分:0)

我自己发现问题:

  

3.将IEnumerable结果传递给RecyclerView适配器

不要将Enumerable传递给适配器,或者,它会在每个项目上重新查询。改为通过列表。