IEnumerable <T> .Cast nie zadziała, nawet jeśli zdefiniowany jest jawny operator rzutowania?

Mam jawną konwersję zdefiniowaną z typuBar pisaćFoo.

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; }
}

Jednak kiedy to robię:

using System.Linq;

...

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

Zgłasza wyjątek mówiąc, że nie może rzucić.

Jak mam to powiedziećCast użyć mojego operatora rzutowania do wypróbowania konwersji?

questionAnswers(5)

yourAnswerToTheQuestion