c# linq. как получить 0 если значение не соответствуйтет выборке
Всем привет
Я плохо понимаю linq, поэтому возможно что то делаю не правильно.
Запрос:
var UserId = 88;
var query = projects
.Join(tasks,
projects => projects.Id,
task => task.ProjectId,
(projects, task) => new { Projects = projects, Tasks = task })
.Where(c => c.Tasks.PerformerId == UserId)
.Select(c => c)
.GroupBy(x => x.Projects)
.ToDictionary(grp => grp.Key.Id, grp => grp.Count());
Есть 2 списка объектов, projects и tasks, они связанные c помощью Id, projects может содержать несколько tasks.
В tasks есть поле PerformerId.
Мне нужно получить колекцию projects с количеством tasks конкретного PerformerId (c.Tasks.PerformerId == UserId).
Если проще - список проектов, и сколько задач в проекте сделал конкретный PerformerId.
Код выше выполняет заданую задачу, пример:
query[0] - return 5 query[1] - return 3
В чем заключается проблема, query содержит в себе элементы с value > 0. Если в списке projects нет ниодного tasks.PerformerId == query вернет ошибку: query[15] - System.Collections.Generic.KeyNotFoundException: "The given key '15' was not present in the dictionary."
А мне нужно получить: query[15] - return 0.
Как это можно сделать? Спасибо