Considerando os seguintes registros:
Id F1 F2 F3
-------------------------------------------------
1 Nima 1990 10
2 Nima 1990 11
3 Nima 2000 12
4 John 2001 1
5 John 2002 2
6 Sara 2010 4
Desejo agrupar com base no F1
campo, classificar Id
e obter todos os campos do primeiro registro do grupo semelhante a esses registros:
Id F1 F2 F3
-------------------------------------------------
1 Nima 1990 10
4 John 2001 1
6 Sara 2010 4
Como posso fazer isso usando o linq?
c#
linq
c#-4.0
linq-to-entities
Arian
fonte
fonte
OrderBy(p => p.Id)
, eles queriam que ele fosse ordenado por ID e não pela coluna do ano.fonte
.GroupBy(x=>x.F1).Select(g=>...)
, pode parecer mais fácil de entender..First()
com.FirstOrDefault()
ou você receberá a exceção:The method 'First' can only be used as a final query operation. Consider using the method 'FirstOrDefault' in this instance instead.
.First()
. A pergunta do OP parece realmente se importar apenas com o linq para o objeto, embora ele também tenha marcado a perguntalinq-to-entities
(não tenho certeza se ele entendeu o que é isso).O awnser de @Alireza está totalmente correto, mas você deve observar que ao usar este código
que é semelhante a esse código porque você solicitou a lista e, em seguida, agrupa para obter a primeira linha de grupos
Agora, se você quiser fazer algo mais complexo, como obter o mesmo resultado de agrupamento, mas pegar o primeiro elemento de F2 e o último elemento de F3 ou algo mais personalizado, poderá fazê-lo estudando o código abaixo
Então você terá algo como
fonte
Use-o para conseguir o que deseja. Em seguida, decida quais propriedades você deseja retornar.
fonte