C# 关于FirstOrDefault或SingleOrDefault

C# 关于FirstOrDefault或SingleOrDefault,c#,linq,C#,Linq,FirstOrDefault或SingleOrDefault将返回何种数据 假设我的查询返回3条记录,如 empid ename salary ----- ----- ------ 1 joy 1500 2 rob 4500 3 jen 6500 所以,如果我们使用FirstOrDefault或SingleOrDefault,那么我将得到什么样的结果集。请举例说明。谢谢SingleOrDefault将返回异常,因为它等待获取一条记录或没有

FirstOrDefault或SingleOrDefault将返回何种数据

假设我的查询返回3条记录,如

empid  ename  salary
-----  -----  ------
1      joy    1500
2      rob    4500
3      jen    6500

所以,如果我们使用FirstOrDefault或SingleOrDefault,那么我将得到什么样的结果集。请举例说明。谢谢

SingleOrDefault将返回异常,因为它等待获取一条记录或没有记录,FirstOrDefault将返回第一条记录(1)
当where包含一个条件时,您可以使用SingleOrDefault,该条件在您的案例中会以记录形式返回-
其中empid==1
显然,您只需要一个ID为1的DB记录

                | 0 values    | 1 value     | > 1 value
FirstOrDefault  | Default     | First value | First value
SingleOrDefault | Default     | First value | Exception
要将此表扩展到整个集合:

                | 0 values    | 1 value     | > 1 value
First           | Exception   | First value | First value
FirstOrDefault  | Default     | First value | First value
Single          | Exception   | First value | Exception
SingleOrDefault | Default     | First value | Exception
Last            | Exception   | Last value  | Last value
LastOrDefault   | Default     | Last value  | Last value
下面是另一个版本,其中包含一些具体的值,以使其更清晰:

                | []          | [1]         | [1,2,3]
First           | Exception   | 1           | 1
FirstOrDefault  | 0           | 1           | 1
Single          | Exception   | 1           | Exception
SingleOrDefault | 0           | 1           | Exception
Last            | Exception   | 1           | 3
LastOrDefault   | 0           | 1           | 3

FirstOrDefault将返回第一个元素和默认值(值类型为默认值,引用类型为null),如果不存在任何元素


如果只有一个元素存在,SingleOrDefault将返回该元素的值。如果不存在,则为默认值;如果查询中有多个元素,则引发异常

在您的情况下,FirstOrDefault将返回第一个元素。
SingleOrDefault将抛出一个异常。

谢谢……给我一个SingleOrDefault的小示例。我需要知道将使用SingleOrDefault的情况。请需要一个示例。当您的where包含一个条件时,您可以使用SingleOrDefault,该条件在您的情况下会在记录中返回-其中empid==1显然,您只需要一个ID为1的DB记录,我在您的帮助下根本无法理解。相反,解释会更好。。。。thanks@user72:你不明白什么?该表非常清晰。@user728750:对于您的数据示例,
FirstOrDefault
将为您带来“喜悦”,而
SingleOrDefault
将引发异常。