私は基本クラスBaseとそれを継承するクラスA/Bを持っています。私は、コードをコンパイルすると、私はこのエラーを得たC言語でOfTypeを持つ型のオブジェクトをフィルタリングする#
public static void RunSnippet()
{
Base xbase; A a; B b;
IEnumerable<Base> list = new List<Base>() {xbase, a, b};
Base f = list.OfType<A>; // I need to get only the object A
Console.WriteLine(f);
}
:
error CS0428: Cannot convert method group 'OfType' to non-delegate type 'Base'. Did you intend to invoke the method?
間違って何
public class Base
{
int x;
}
public class A : Base
{
int y;
}
public class B : Base
{
int z;
}
は、私は次のように私は必要なオブジェクトのみをフィルタリングするためにOfTypeを使用しようとしましたコードは?
これは、括弧を忘れた方法です。 OfType ()。 –
あなたのリストを行き来し、typeofを使ってそれぞれのタイプをもう一度チェックしてみてください。配列リストを使用すると、antタイプのオブジェクトを格納できます。 –
@ user1260028:彼は正しくメソッドを使用する場合、OPのアプローチはうまく動作します。 *ジェネリックでないコレクションを使う必要はありません。 –