Linq, wie mache ich groupBy?

Projekttabelle:

ID, DeptId, Jahr, Name, Ebene

Id = 1, DeptId = 1, Year = 2000, Name = "ABC", Level = 1
Id = 2, DeptId = 1, Year = 2001, Name = "ABC1", Level = 1
Id = 3, DeptId = 1, Year = 2002, Name = "ABC2", Level = 1

Id = 4, DeptId = 2, Year = 2000, Name = "ABC3", Level = 1
Id = 5, DeptId = 2, Year = 2002, Name = "ABC4", Level = 1

Id = 6, DeptId = 3, Year = 2000, Name = "ABC5", Level = 1
Id = 7, DeptId = 3, Year = 2001, Name = "ABC6", Level = 1
Id = 8, DeptId = 3, Year = 2002, Name = "ABC7", Level = 1

Ich habe einen Projekttisch. Ich muss das Projekt für jede Abteilung für 2001 bekommen. Für DeptId = 2, es hat kein Projekt für 2001, ich muss das Projekt des vorherigen Jahres zeigen, das 2000 ist.

mein linq sollte folgendes ergebnis zurückgeben.

Id = 2, DeptId = 1, Year = 2001, Name = "ABC1", Level = 1
Id = 4, DeptId = 2, Year = 2000, Name = "ABC3", Level = 1
Id = 7, DeptId = 3, Year = 2001, Name = "ABC6", Level = 1

Ich habe darüber nachgedacht, groupby zu verwenden, gruppiere die DeptId, bin mir aber nicht sicher, wie ich diese Abfrage schreiben soll.

Aktualisieren:

Das habe ich versucht.

var projects = project.Where (x => x.Year == 2001)

Dies gibt jedoch kein Ergebnis für DeptId = 2 zurück. Deshalb denke ich über die Verwendung von groupby nach, habe aber keine Ahnung, wie ich es schreibe.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage