Ich habe eine Methode in einer Silverlight-Anwendung, die derzeit eine IList zurück, und ich möchte die sauberste Weg finden, diese in ein ObservableCollection zu drehen, so:IList <T> ObservableCollection <T>
public IList<SomeType> GetIlist()
{
//Process some stuff and return an IList<SomeType>;
}
public void ConsumeIlist()
{
//SomeCollection is defined in the class as an ObservableCollection
//Option 1
//Doesn't work - SomeCollection is NULL
SomeCollection = GetIlist() as ObservableCollection
//Option 2
//Works, but feels less clean than a variation of the above
IList<SomeType> myList = GetIlist
foreach (SomeType currentItem in myList)
{
SomeCollection.Add(currentEntry);
}
}
ObservableCollection nicht hat Ein Konstruktor, der eine IList oder IEnumerable als Parameter verwendet, damit ich nicht einfach eine neue erstellen kann. Gibt es eine Alternative, die eher wie Option 1 aussieht, die ich vermisse, oder bin ich einfach zu pingelig hier und Option 2 ist wirklich eine vernünftige Option.
Wenn Option 2 die einzige echte Option ist, gibt es einen Grund, einen IList über IEurerable zu verwenden, wenn alles, was ich jemals damit tun werde, über den Rückgabewert iteriert und zu einem anderen hinzugefügt wird Art der Sammlung?
Vielen Dank im Voraus
Update für Silverlight 4: ObservableCollection nun einen Konstruktor hat, dass t wird ake ein IList oder IEnumerable als Parameter –