我有一个明确的转换定义从类型为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; } }
但是,当我做:
using System.Linq; ... var manyFoos = manyBars.Cast<Foo>();
它抛出一个例外,说它不能投射.
如何告诉Cast使用我的演员操作来尝试转换?