IEnumerable <T> .Cast não funcionará mesmo que um operador de conversão explícito seja definido?

Eu tenho uma conversão explícita definida do tipoBar digitarFoo.

public class Bar
{
  public static explicit operator Foo(Bar bar)
  {
    return new Foo(bar.Gar);
  }
}

public class Foo
{
  public string Gar { get; set; }

  public Foo() { }

  public Foo(string gar) { Gar = gar; }
}

No entanto, quando eu faço:

using System.Linq;

...

var manyFoos = manyBars.Cast<Foo>();

Ele lança uma exceção dizendo que não é possível converter.

Como eu digoCast usar meu operador de elenco para tentar a conversão?

questionAnswers(5)

yourAnswerToTheQuestion