我有一個抽象父類,它從它繼承的子類。我有另一個類包含許多不同的子類的List<>
類型。然後,我在另一個類中有一個方法,它的參數爲List<ParentType>
,並且只調用聲明爲抽象的方法。List.Cast <>錯誤「是一種在給定的上下文中無效的方法」
我在使用List<T>.Cast<T2>
在子類的列表上遇到問題。我得到的錯誤:
System.Linq.Enumerable.Cast(System.Collections.IEnumerable)' is a 'method', which is not valid in the given context
有沒有人知道如何解決這個錯誤?或者,我是否必須重建List<ParentType>
類型的清單並逐個重新更新每個項目?我想要做的事: 公共抽象類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) {
//...
}
}
你應該發佈給你這個錯誤的代碼。 –
@保羅 - 的確如此。沒有語境,我們無法幫助你太多。 – bluevector
增加了一些代碼 – David