0

たくさんのクラスがあります。このリストから、指定されたタイプを取得します

Type aType = Type.GetType(...);

次に、このタイプを次のようなlinqステートメントで使用します。

var aResult = from obj in scope.Extent<aType>() select obj;

ExtentはTypeを受け入れないため、これは不可能のようです。

(.net 4.5を使用して)ステートメントを呼び出す方法はありますか?

私がやりたいのは、Typeをクラスとして使用すると言うことだけです。クラスを呼び出さないでください。スコープからこのタイプのすべてのオブジェクトをlinqで取得するだけです。

4

1 に答える 1

2

のインスタンスをTypeジェネリック型の引数として使用することはできません-とにかく、コンパイル時ではありません。

特定のタイプのオブジェクトが必要な場合は、

var aResult = from obj in scope where obj.GetType() == aType select obj;

これには、あらゆる種類の「割り当てることができる」関係ではなく、完全な型の一致が必要であることに注意してください。

また、これは一連のsのみを取得することに注意してください。ここでもobject、のインスタンスに物事をキャストするコンパイル時の方法はありませんType

于 2012-10-25T12:18:41.563 に答える