LINQ fornece operadores de elementos que retornam um único elemento ou um elemento específico de uma coleção. São eles: Single, SingleOrDefault, First, FirstOrDefault, Last, LastOrDefault. Vamos ver um pouco mais sobre cada um deles:
Single
SingleOrDefault
First
FirstOrDefault
Quando usar Sing, SingleOrDefault, First e FirstOrDefault:
- Quando você quer uma exceção para ser lançada se o conjunto de resultados contém muitos registros, use Single ou SingleOrDefault.
- Quando você quer um valor padrão a ser devolvido se o conjunto de resultados contém nenhum registro, use SingleOrDefault.
- Quando você quer sempre um registro, não importa o que o conjunto de resultados contém, use First ou FirstOrDefault.
- Quando você quer um valor padrão se o conjunto de resultados contém nenhum registro, use FirstOrDefault.
Desempenho de SingleOrDefault e FirstOrDefault
FirstOrDefault normalmente executará mais rápido do que a comparação SingleOrDefault, uma vez que estes iterar a coleção até encontrar o primeiro registro. Enquanto SingleOrDefault irá fazer uma busca cega na coleção inteira para encontrar um único resultado.
Por hoje é só e um grande abraço!