Примерно так (написал по памяти без студии):
var paramLink = …;
var paramFilter = …;
var result Nav.Where(nav => nav.Link == paramLink && nav.Filter == paramFilter)
.GroupBy(nav => new {Link = nav.Link,Vendor = nav.Vendor} , nav => nav)
.OrderBy(grNav => grNav.Key.Vendor).Select(grNav => new {Link = grNav.Key.Link, Vendor = grNav.Key.Vendor, Count = grNav.Count()});
Вместо анонимного класса new {Link = nav.Link,Vendor = nav.Vendor} возможно лучше использовать что-то типа KeyValuePair или другой класс, который для установления равенства объектов сравнивает их реквизиты.