LINQ に異なる型として提示されている 10 個のテーブルがありますが、まったく同じプロパティを共有しています。それらに対してユニオンを実行しようとすると、コンパイラは次のように伝えます。
"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 回 (変数ごとに 1 回) 入力する必要がないため、このオプションは機能しません。すべてのプロパティが同一であるという事実に基づいて、それらがすべて同じ型であるとコンパイラーに推測させたいのです。
AsQueryable() タイプの関数と「as」キーワードの両方を使用して、IEnumberable、Iqueryable、Datatable などにキャストしようとしました。どれも私にとってはうまくいかないようです。
親タイプに動的にキャストすることでこれを行う方法があるかどうか疑問に思っています。クラスの初期宣言を編集できないため、キャスト先の共通インターフェイスを実装できません。しかし、各型から親インターフェイスへの変換を記述せずに、使用時に型を共通のインターフェイスにダウンキャストできる方法はありますか?
アドバイスをありがとう!