我有2個基類FirstBase和SecondBase。我還有2個從它們派生的類,DerivedFirst和DerivedSecode,它們都具有幾乎相同的屬性。源代碼如下所示。如何將X列表轉換爲C#中的Y列表?
public abstract class FirstBase
{
//some method
}
public abstract class SecondBase
{
//some method
}
public class DerivedFirst : FirstBase
{
//override methods of its parent
public static implicit operator DerivedFirst(DerivedSecond second)
{
//doing some logic here
}
}
public class DerivedSecond : SecondBase
{
//override methods of its parent
public static implicit operator DerivedSecond(DerivedFirst first)
{
//doing some logic here
}
}
從這段代碼我可以創建DerivedFirst的實例並分配給DerivedSecond沒有任何問題。但是,當我嘗試將它們的列表轉換爲下面的代碼時,它沒有結果。
List<DerivedFirst> firstList;
List<DerivedSecond> secondList;
//doing some operation here
List<DerivedSecod> test = firstList.Cast<DerivedSecond>(); // don't have any output here.
如何將firstList轉換爲List()?
我已經嘗試這種方法,但是當我調試到foo是節目則「」 {「無法投類型的對象DerivedFirst爲鍵入‘DerivedSecond’。」} – Anonymous 2010-07-24 10:08:36
@Ekkapop:我已經更新了我的答案。 – 2010-07-24 10:46:17