var categoriesByProductsNumberQuery =
  from c in categories
  join p in products on c.IdCategory equals p.IdCategory
    into productsByCategory
  let ProductsCount = productsByCategory.Count()
  orderby ProductsCount
  select new { c.IdCategory, ProductsCount};

foreach (var item in categoriesByProductsNumberQuery) {
  Console.WriteLine(item);
}
