Учитывая следующие записи:
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
Я хочу сгруппировать по F1
полям, отсортировать по Id
и получить все поля из первой записи группы, подобные этим записям:
Id F1 F2 F3
-------------------------------------------------
1 Nima 1990 10
4 John 2001 1
6 Sara 2010 4
Как я могу сделать это с помощью Linq?
c#
linq
c#-4.0
linq-to-entities
ариец
источник
источник
OrderBy(p => p.Id)
, они хотели, чтобы это заказало удостоверение личности не колонка года.источник
.GroupBy(x=>x.F1).Select(g=>...)
, это может выглядеть проще для понимания..First()
на.FirstOrDefault()
или вы получите исключение:The method 'First' can only be used as a final query operation. Consider using the method 'FirstOrDefault' in this instance instead.
.First()
. Вопрос ОП выглядит просто как забота о linq-to-object, хотя он также пометил вопросlinq-to-entities
(не уверен, понял ли он, что это такое).Замечатель @Alireza совершенно правильный, но вы должны заметить, что при использовании этого кода
что аналогично этому коду, потому что вы упорядочиваете список, а затем делаете группировку, чтобы получить первый ряд групп
Теперь, если вы хотите сделать что-то более сложное, например, взять тот же результат группировки, но взять первый элемент F2 и последний элемент F3 или что-то более нестандартное, вы можете сделать это, изучив код ниже
Таким образом, вы получите что-то вроде
источник
Используйте это, чтобы достичь того, что вы хотите. Затем решите, какие свойства вы хотите вернуть.
источник