Linq, как сделать groupBy?

таблица проекта:

Id, DeptId, Год, Имя, Уровень

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

У меня есть стол проекта. Мне нужно получить проект для каждого отдела на 2001 год. Для DeptId = 2 у него нет проекта на 2001 год, мне нужно показать проект предыдущего года, который является 2000.

мой linq должен вернуть следующий результат обратно.

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

Я думал об использовании groupby, сгруппировать DeptId, но не знал, как написать этот запрос.

Обновить:

Это то, что я пытался.

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

но это не вернет результат для DeptId = 2, поэтому я думаю об использовании groupby, но не знаю, как его написать.

Ответы на вопрос(2)

Ваш ответ на вопрос