static IEnumerable <Order> MyCast(MyEnumerable orders) { IEnumerable <Order> typedSource = orders as IEnumerable <Order>; if (typedSource != null) { return(typedSource); } if (orders == null) { throw new Exception("orders == null"); } return(CastIterator <Order>(orders)); }
static void Main(string[] args) { Console.WriteLine("Hello World!"); var myEnumerable = new MyEnumerable(); myEnumerable.Add("chen"); myEnumerable.Add("qiang"); myEnumerable.Add("dennis"); foreach (var item in myEnumerable) { Console.WriteLine($"value => {(item as Order).Name}"); } var asResult = MyCast(myEnumerable); foreach (var item in asResult) { Console.WriteLine($"value1 => {item.Name}"); } Console.ReadKey(); }