IList & lt; T & gt; à ObservableCollection & lt; T & gt;

J'ai une méthode dans une application Silverlight qui rentre actuellement un IList et je voudrais trouver la façon la plus propre à transformer cela en une ObservableCollection donc:

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 n'a pas un constructeur qui prendra un IList ou IEnumerable en tant que paramètre, donc je ne peux pas simple la nouvelle. Est-il une alternative qui ressemble plus à de l'option 1 que je suis absent, ou suis-je tout simplement trop tatillon ici et l'option 2 est vraiment une option raisonnable.

Aussi, si l'option 2 est la seule véritable option, est-il une raison pour utiliser un IList sur une IEnurerable si je ne suis jamais vraiment va faire, c'est d'itérer sur la valeur de retour et l'ajouter à un autre type de collection?

Merci d'avance

source d'informationauteur Steve Brouillard