c# - LINQ:为什么要使用 ...Take(1).SingleOrDefault()?

标签 c# linq

<分区>

我目前正在检查我将要维护的一些代码。

我见过几次

.Take(1).SingleOrDefault()

为什么要用它而不是简单地使用它

.First() or .FirstOrDefault() 

(我不确定如果结果集为空,.Take(1) 是否会抛出异常,恕我直言,这两个 .First... 方法之间会有区别吗?)

最佳答案

我们不可能确切地知道您可能使用的任何 LINQ 提供程序的内部实现。他们的做法各不相同。在这种情况下,有些可能性能更高,而另一些可能性能较低。无论哪种方式,您都应该得到相同的结果。

在这种情况下,我们不可能读懂某人的想法来确定他们为什么会这样做。

话虽如此,如果您想深入挖掘并且它是一个 SQL 提供程序,您可以查看它生成的 SQL 并比较两种情况。

关于c# - LINQ:为什么要使用 ...Take(1).SingleOrDefault()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51380818/

相关文章:

c# - asp.net mvc 如何将 View 与 Controller 操作相关联?

c# - 在 .NET 3.5 中使用反射生成子类列表

c# - MvvmCross View 模型初始化完成

c# - 如何在 EF 4.1 中急切加载祖 parent 记录

c# - 选择第一个记录每个组

c# - (http) coreclr/dnxCore 中的 Web 请求提供程序?

c# - 在我的 C# 应用程序中禁用 Windows 字体大小增加

c# - 从列表中查找存在于另一个列表中的项目

c# - 如何左连接两个数据表?

c# - 检查 IEnumerable<T> 是否有具有重复属性的项目