Pergunta

Parece que há duas maneiras de consultas de construção - seja usando expressões de consulta:

IEnumerable<Customer> result =
                        from customer in customers
                        where customer.FirstName == "Donna"
                        select customer;

ou usando métodos de extensão:

IEnumerable<Customer> result =
           customers.Where(customer => customer.FirstName == "Donna");

O que você usa e por quê? Qual você acha que será mais popular no longo prazo?

Foi útil?

Solução

Apenas um número limitado de operações estão disponíveis na sintaxe da expressão, por exemplo, ter () ou Primeira () só estão disponíveis usando métodos de extensão.

Eu pessoalmente prefiro a expressão se todas as operações necessárias estão disponíveis, se não, então eu cair de volta para os métodos de extensão como eu encontrá-los mais fáceis de ler do que lambdas.

dar uma olhada nesta resposta,

métodos Linq Extensão vs Linq sintaxe

Outras dicas

Eu uso a sintaxe do método (quase) exclusivamente, porque a sintaxe de consulta tem mais limitações. Por razões de manutenção, acho que é preferível usar a sintaxe do método imediatamente, em vez de talvez convertê-lo mais tarde, ou usando uma mistura de ambas as sintaxes.

Pode ser um pouco mais difícil de ler no início, mas uma vez que você se acostumar com isso, ele funciona bastante natural.

Eu só uso a sintaxe do método. Isto é porque acho que é muito mais rápido para escrever, e eu escrever uma tonelada de LINQ. Eu também gosto dele porque ele é mais concisa. Se trabalhar em uma equipe, provavelmente o seu melhor para chegar a um consenso sobre qual é o estilo preferido, como misturar os dois estilos é difícil de ler.

A Microsoft recomenda a sintaxe da consulta. "Em geral, recomendamos consulta sintaxe porque geralmente é mais simples e mais legível". http://msdn.microsoft.com/en-us/library/bb397947. aspx

Depende do que você e sua equipe encontrar mais legível, e eu escolheria isso em uma base caso a caso. Há algumas consultas que ler melhor na forma de sintaxe e há alguns que ler melhor na forma de método. E, claro, não é que grande meio termo onde você não pode dizer uma maneira ou de outra, ou alguns preferem-lo desta maneira e outros dessa forma.

Tenha em mente que você pode misturar ambas as formas juntos, onde ele pode torná-lo mais legível.

Eu não vejo nenhuma razão para suspeitar que qualquer forma irá desaparecer no futuro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top