2
respostas

Onde está a propriedade mes desta resposta correta?!

var meses = new List<string>() { "janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro" };

var mesesOrdenados = meses.OrderBy(mes => mes);

No código acima eu tenho uma List de string (meses) e não há propriedade mes, isso significa que o OrderBy não necessita da propriedade da referência para ordenar? ou o correto seria

var mesesOrdenados = meses.OrderBy(meses => meses); 

?

2 respostas

Oi Daniel, tudo bom?

Na verdade, estamos declarando a variável mês dentro de uma função anônima. Inclusive, o nome dessa variável pode ser qualquer um:

var mesesOrdenados = meses.OrderBy(qualquerCoisa => qualquerCoisa);

Nesse caso o nome mes faz sentido porque estamos passando por cada valor dentro da lista de meses =)

O nome meses poderia confundir nesse cenário.

Abraço!

var mesesOrdenados = meses.OrderBy(mes => mes);

o mes antes do =>, é uma variável local da sua função anônima que vai receber como parâmetro o meses.

var mesesOrdenados = meses.OrderBy(meses => meses);

esse código não irá compilar pois a variável local denominada 'meses' não pode ser declarada neste escopo porque daria um significado diferente a 'meses', que já é usado em um escopo 'pai ou atual' para indicar outra coisa