Jas*_*son 1 c# performance coding-style
当IEnumerable需要进行排序和要删除的元素时,是否有以特定顺序执行阶段的优点/缺点?我的表现测试似乎表明它无关紧要.
我所说的简化(有点人为)的例子如下所示:
public IEnumerable<DataItem> GetDataItems(int maximum, IComparer<DataItem> sortOrder)
{
IEnumerable<DataItem> result = this.GetDataItems();
result.Sort(sortOrder);
result.RemoveAll(item => !item.Display);
result = result.Take(maximum);
return result;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您的测试表明它无关紧要,那么为什么要担心呢?不要在需要之前进行优化,只有在问题出现时才进行优化.如果您发现性能问题,并且使用了分析器,并且发现该方法是热点,那么您可以更加担心它.
第二个想法,你考虑过使用LINQ吗?这些调用可以替换为调用to,Where
并且OrderBy
两者都被延迟,然后调用Take
,就像你在你的例子中一样.LINQ库应该找到最适合您的方法,如果您的数据大小扩展到需要花费大量时间来处理的程度,您可以通过简单的调用来使用PLINQ AsParallel
.
归档时间: |
|
查看次数: |
735 次 |
最近记录: |