Linq, jak zrobić groupBy?

tabela projektu:

Id, DeptId, Year, Name, Level

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

Mam tabelę projektu. Muszę pobrać projekt dla każdego działu na rok 2001. dla DeptId = 2, nie ma projektu na rok 2001, muszę pokazać projekt z poprzedniego roku, który jest 2000.

mój linq powinien zwrócić następujący wynik z powrotem.

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

Myślałem o użyciu groupby, grupowaniu DeptId, ale nie wiem, jak napisać to zapytanie.

Aktualizacja:

To właśnie próbowałem.

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

ale to nie zwróci wyniku dla DeptId = 2, dlatego myślę o użyciu groupby, ale nie wiem jak to napisać.

questionAnswers(2)

yourAnswerToTheQuestion