我想在C#中做類似於協變的東西,但我沒有任何繼承。列表<Ttype>到列表<TInterface>在C#中?
我有這樣的代碼:
public interface IBirthday
{
void Dance();
}
public class Birthday:IBirthday
{
public void Dance()
{}
}
void Main()
{
List<Birthday> l= new List<Birthday>();
List<IBirthday> d = l; //<--- How can I accomplish that ?
}
我怎樣才能使這項工作? (除了迭代和手動構建(linq或循環))
List<IBirthday> d = list of birthdays ?
不會迭代/ linq是唯一的選擇嗎?
你試過[''Cast'](http://msdn.microsoft.com/zh-cn/library/bb341406.aspx)? – Oded
你不能也不應該,因爲缺乏協變性,它不是類型安全的。你應該可以做'IEnumerable d = 1;'雖然。 –
millimoose
你爲什麼想要一個'List'?這是關鍵,用例看起來很小。 –