OfType <>与“是”查询的性能

抢夺

在TPH继承中,这之间没有任何区别:

context.Firms.OfType<RedFirm>()

和这个:

context.Firms.Where(item => item is RedFirm);

在性能方面?

迈克尔·邓拉普

OfType<T>返回IEnumerable<T>(或IQueryable<T>,等等)。它在内部做的is,并投下这些对象只返回那些T类型OfType<TResult>还包括短路检查,如果整个IEnumerable<T>是可浇注到IEnumerable<TResult>那么它将显著更快地执行,因为它不会在集合中检查各个项目。

Where不会更改的返回类型IEnumerable<T>,并且由于您必须转换它们(如果需要),因此OfType<T>应稍快一些,因为它包含此调用。

相关链接:为什么OfType <>比Cast <>快?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章