.Net - LINQ查询返回单个对象?

ary*_*axt 4 .net linq

是否可以使用LINQ查询返回单个对象而不是列表?

User user = (from User u in users 
     where u.id == 5
     select u);
Run Code Online (Sandbox Code Playgroud)

dmc*_*mck 11

是,

User user = (from User u in users 
    where u.id == 5
    select u).Single()
Run Code Online (Sandbox Code Playgroud)

如果查询返回多个元素,这将抛出异常.

如果你只想要第一个元素:

User user = (from User u in users 
    where u.id == 5
    select u).First()
Run Code Online (Sandbox Code Playgroud)

当没有元素存在时,使用SingleOrDefault()和FirstOrDefault()为引用类型返回null.

  • `SingleOrDefault()`和`FirstOrDefault()`将返回_default_值.对于值类型,这不会是'null`,而是特定值类型的默认值. (3认同)