作者Killercat (殺人貓™)
看板C_Sharp
標題[問題] Collection內容的轉型問題
時間Sat Oct 10 23:36:47 2009
請問一下,我設計碰到一個比較麻煩的問題
可能有點新手,不過以往比較沒碰過
class CharacterCard : Card
{
...
...
...
}
class DistrictCard : Card
{
...
...
...
}
也就是他們兩個有共通的父類別
現在他們兩個各有一個List
List<CharacterCard> theCharCards = new List<CharacterCard>();
List<DistrictCard> theDistCards = new List<DistrictCard>();
然後我希望能用一個List<Card>指向他們兩個
List<Card> theCards;
當然這轉不過去(所以我就上來問問各位有經驗的人了)
theCards = theCharCards; //error
theCards = theDistCards; //error
theCards = (List<CharCards>)theCharCards; //一樣error
因為某些因素,無法寫成
List<Cards> theCharCards = new List<CharacterCard>();//這穩死的 應該不用try了
或者
List<Cards> theCharCards = new List<Cards>(); //裡面塞CharacterCards
請問有沒有什麼方法可以直轉?還是得重新設計系統讓他們全部用List<Card>裝?
先謝謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.114.66
※ 編輯: Killercat 來自: 114.43.114.66 (10/10 23:38)
→ a761007:interface 10/11 00:15
推 liunate:看看LINQ中的CastTo<T>(或類似的)是否對你有幫助? 10/11 00:33
→ Killercat:一樓這個我想一下怎麼做,謝謝 @@ 二樓,我沒用過linq 10/11 02:32
→ Killercat:我看一下怎麼用,感謝 10/11 02:32