我有10个表格,它们在LINQ中以不同的类型呈现,但共享完全相同的属性。当我尝试在它们上运行联合时,编译器告诉我:
"Argument 2: cannot convert from 'System.Collections.IEnumerable' to 'System.Collections.Generic.IEnumerable<LINQPad.User.TelJun2011>'"
代码看起来像这样
var jul = (from n in TelJul2011s select n);
var jun = (from p in TelJun2011s select p);
jun.Union(jul).Dump();
我已经进行了研究并且理解了不同类型之间不能执行联合操作,我也明白如果匿名类型共享相同属性,则可以对其执行联合操作。但是这个选项对我来说行不通,因为我需要从所有表中获取所有属性,并且不想为每个变量输入相同的匿名类型10次。我希望编译器基于所有属性都相同的事实来推断它们都是相同的类型。
我已经尝试过使用AsQueryable()类型函数和"as"关键字将其转换为IEnumberable、Iqueryable、Datatable等,但似乎都不起作用。
我想知道是否有一种通过动态转换为父类型来实现的方法。我无法编辑类的初始声明,因此无法在它们上实现公共接口进行转换。但是否有一种方法可以在使用时将类型向下转换为公共接口,而无需从每种类型到父接口编写转换?
感谢任何建议!