子クラスが継承する抽象親クラスがあります。List<>
さまざまな子クラスの多くのタイプを含む別のクラスがあります。List<ParentType>
次に、のパラメータを取り、抽象として宣言されたメソッドを呼び出すメソッドが別のクラスにあります。
List<T>.Cast<T2>
子クラスのリストでの使用に問題があります。エラーが発生しました:
System.Linq.Enumerable.Cast(System.Collections.IEnumerable)'は'メソッド'であり、指定されたコンテキストでは無効です
誰かがこのエラーを修正する方法を知っていますか?または、タイプのリストを再構築して、List<ParentType>
各アイテムを個別に再キャストする必要がありますか?
私がやろうとしていること:public abstract class P {public int num; public abstract double addSections(); }
public class A : P {
public int num2;
public A(int r, int n) {
num = r;
num2 = n;
}
public double addSections() { return (double)num + (double)num2; }
}
public class B : P {
public double g;
public B(int r, double k) {
num = r;
g = k;
}
public double addSections() { return (double)num + g; }
}
public class MyClass {
public MyClass() {
List<A> listA;
List<B> listB;
//...
helper(listA.Cast<P>()); //doesn't work
helper(listB.Cast<P>().ToList()); //doesn't work either
}
public void helper(List<P> list) {
//...
}
}