LINQ: When to use SingleOrDefault vs. FirstOrDefault() with filtering criteria

LINQ: When to use SingleOrDefault vs. FirstOrDefault() with filtering criteria

问题

 

 

 

回答1

If your result set returns 0 records:

  • SingleOrDefault returns the default value for the type (e.g. default for int is 0)
  • FirstOrDefault returns the default value for the type

If you result set returns 1 record:

  • SingleOrDefault returns that record
  • FirstOrDefault returns that record

If your result set returns many records:

  • SingleOrDefault throws an exception
  • FirstOrDefault returns the first record

Conclusion:

If you want an exception to be thrown if the result set contains many records, use SingleOrDefault.

If you always want 1 record no matter what the result set contains, use FirstOrDefault

 

posted @ 2022-08-31 14:00  ChuckLu  阅读(23)  评论(0)    收藏  举报