0

私のデータベースにクラス FooBar とクラス BarFoo の 2 つのクラスがあるとします。FooBarのリストを含むクラス FooBos を返すデータベースでクエリを実行しますが、リストには BarFooのインスタンスを含めることができます (理由は聞かないでください。これはデータベースを取得した方法であり、編集できません)。

とにかく、ドメインオブジェクトを構築するには、次のコードを使用して、どのクラスがどのクラスであるかを確認します

if(FooBos.FooBars.OfType<BarFoo>().Count() != 0)
  //Do things for FooBar here
else
  //Do Things for BarFoo here

したがって、問題は OfType の後で、リスト全体が Type BarFoo のものであり、その理由がわかりません。

なぜこれが起こるのか誰にも分かりますか?

4

2 に答える 2

1

通常、OfType<>継承関係が存在する場合は常に使用されます。あなたの場合、FooBar は BarFoo の子であると思われます。

この場合、リスト内のすべてのオブジェクトが BarFoo を継承しているか、単に BarFoo オブジェクトであることを意味します。soOfType<BarFoo>はすべてのオブジェクトを返します。

于 2013-11-05T09:24:17.187 に答える