Respostas:
ObservableCollection <T> tem uma sobrecarga de construtor que leva IEnumerable <T>
Exemplo para uma lista de int
:
ObservableCollection<int> myCollection = new ObservableCollection<int>(myList);
Mais um exemplo para uma lista de ObjectA
:
ObservableCollection<ObjectA> myCollection = new ObservableCollection<ObjectA>(myList as List<ObjectA>);
ObervableCollection tem um construtor no qual você pode passar sua lista. Citando MSDN :
public ObservableCollection(
List<T> list
)
O construtor Observable Collection levará um IList ou um IEnumerable.
Se você descobrir que vai fazer muito isso, pode criar um método de extensão simples:
public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> enumerable)
{
return new ObservableCollection<T>(enumerable);
}