item is RedFirm); 在性能方面?-6ren">
gpt4 book ai didi

c# - OfType<> 与 "is"查询的性能

转载 作者:行者123 更新时间:2023-11-30 20:52:54 25 4
gpt4 key购买 nike

在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>应该稍微快一些,因为它包含此调用。

相关链接:Why is OfType<> faster than Cast<>?

关于c# - OfType<> 与 "is"查询的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20444850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com