none
Conversione tra List<> RRS feed

  • Domanda

  • ecco il mio quesito.

    ho una interfaccia (es. IActivity) e una classe che la implementa (es. Activity)

    public interface IActivity { }
    public class Activity : IActivity {}
    

    e avrei bisogno di fare più o meno questo

    List<Activity> list = new List<Activity>();
    list.Add(new Activity());
    list.Add(new Activity());
    
    ObservableCollection<IActivity> coll = new ObservableCollection<IActivity>(list);
    

    ora il compilatore mi dice che non può convertire List<Activity> in List<IActivity>.

    non esiste qualche meccanismo per fare questa conversione?

    grazie
    sabato 26 dicembre 2009 20:53

Risposte

  • Ciao,

    non ancora :-) si chiama covarianza e arriverà con il framework 4.0,
    per ora una cosa che puoi fare è una ocsa del tipo:

    var list = new List<Activity>();
    var oc = new ObservableCollection<IActivity>( list.OfType<IActivity>()
    );

    ..m



    Mauro Servienti {C67C0157-5D98-4733-A75E-93CAEE4BADC8} Microsoft MVP - Visual C# / MCP http://mvp.support.microsoft.com http://blogs.ugidotnet.org/topics whynot [ at ] topics [ dot ] it
    • Contrassegnato come risposta ghigo74 domenica 27 dicembre 2009 12:57
    sabato 26 dicembre 2009 22:33

Tutte le risposte

  • Ciao,

    non ancora :-) si chiama covarianza e arriverà con il framework 4.0,
    per ora una cosa che puoi fare è una ocsa del tipo:

    var list = new List<Activity>();
    var oc = new ObservableCollection<IActivity>( list.OfType<IActivity>()
    );

    ..m



    Mauro Servienti {C67C0157-5D98-4733-A75E-93CAEE4BADC8} Microsoft MVP - Visual C# / MCP http://mvp.support.microsoft.com http://blogs.ugidotnet.org/topics whynot [ at ] topics [ dot ] it
    • Contrassegnato come risposta ghigo74 domenica 27 dicembre 2009 12:57
    sabato 26 dicembre 2009 22:33
  • grazie per la info e la celerità!
    domenica 27 dicembre 2009 12:59