IEnumerable的性能 。Count()-遍历值类型和引用类型之间的差异

问题描述 投票:0回答:1

我正在尝试优化集合(IEnumerable<T>)中的计数元素

由于此数据是从内存缓存中加载的,因此没有必要切换到使用IQueryable<T>.Count()(为了进行简单的数据库调用SELECT count(1) FROM TableT而不是遍历IEnumerable<T>的整个列表)

所以我只是有一个想法,也许遍历值类型(例如int)的集合(IEnumerable)可能比遍历引用类型的集合要快[]

myEnumerable.Count();

替换为:

myEnumerable.Select(el => el.Id).Count();

不知道它是否正确,也不确定如何正确测试它,但是首先简单的估计表明,在IEnumerable<int>上进行迭代比在IEnumerable<some-business-object>上进行迭代要快一些(如5-10%)>

所以,问题是-遍历集合是值类型还是引用类型,是否有任何不同?

我正在尝试优化集合中的计数元素(IEnumerable ),因为此数据是从内存缓存中加载的,所以没有必要切换到使用IQueryable 。Count()(按顺序...

] >
c# ienumerable
1个回答
0
投票

myEnumerable.Count();

替换为:

myEnumerable.Select(el => el.Id).Count();

© www.soinside.com 2019 - 2024. All rights reserved.