Mempertimbangkan catatan berikut:
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
Saya ingin mengelompokkan berdasarkan pada F1
bidang dan mengurutkan berdasarkan Id
dan mendapatkan semua bidang dari catatan pertama grup yang mirip dengan catatan ini:
Id F1 F2 F3
-------------------------------------------------
1 Nima 1990 10
4 John 2001 1
6 Sara 2010 4
Bagaimana saya bisa melakukan ini menggunakan LINQ?
c#
linq
c#-4.0
linq-to-entities
Arian
sumber
sumber
OrderBy(p => p.Id)
, mereka menginginkannya dipesan dengan ID bukan kolom tahun.sumber
.GroupBy(x=>x.F1).Select(g=>...)
, mungkin terlihat lebih mudah dimengerti..First()
dengan.FirstOrDefault()
atau Anda akan mendapatkan pengecualian:The method 'First' can only be used as a final query operation. Consider using the method 'FirstOrDefault' in this instance instead.
.First()
. Pertanyaan OP itu terlihat seperti hanya peduli dengan linq-to-object, meskipun dia juga menandai pertanyaan itulinq-to-entities
(tidak yakin apakah dia mengerti apa itu).Awnser @Alireza sepenuhnya benar, tetapi Anda harus memperhatikan bahwa ketika menggunakan kode ini
yang mirip dengan kode ini karena Anda memesan daftar dan kemudian melakukan pengelompokan sehingga Anda mendapatkan baris pertama grup
Sekarang jika Anda ingin melakukan sesuatu yang lebih kompleks seperti mengambil hasil pengelompokan yang sama tetapi mengambil elemen pertama dari F2 dan elemen terakhir dari F3 atau sesuatu yang lebih khusus Anda dapat melakukannya dengan mempelajari kode di bawah ini
Jadi, Anda akan mendapatkan sesuatu seperti
sumber
Gunakan itu untuk mencapai apa yang Anda inginkan. Kemudian tentukan properti mana yang ingin Anda kembalikan.
sumber