Sco*_*ain 189
根据MSDN
var myObservableCollection = new ObservableCollection<YourType>(myIEnumerable);
Run Code Online (Sandbox Code Playgroud)
这将生成当前IEnumerable的浅表副本,并将其转换为ObservableCollection.
Eli*_*sha 69
如果你正在使用非泛型,IEnumerable
你可以这样做:
public ObservableCollection<object> Convert(IEnumerable original)
{
return new ObservableCollection<object>(original.Cast<object>());
}
Run Code Online (Sandbox Code Playgroud)如果你正在使用泛型,IEnumerable<T>
你可以这样做:
public ObservableCollection<T> Convert<T>(IEnumerable<T> original)
{
return new ObservableCollection<T>(original);
}
Run Code Online (Sandbox Code Playgroud)如果你正在使用非泛型IEnumerable
但知道元素的类型,你可以这样做:
public ObservableCollection<T> Convert<T>(IEnumerable original)
{
return new ObservableCollection<T>(original.Cast<T>());
}
Run Code Online (Sandbox Code Playgroud)mar*_*lde 28
为了使事情变得更简单,您可以创建一个Extension方法.
public static class Extensions
{
public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> col)
{
return new ObservableCollection<T>(col);
}
}
Run Code Online (Sandbox Code Playgroud)
然后你可以在每个IEnumerable上调用该方法
var lst = new List<object>().ToObservableCollection();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
75139 次 |
最近记录: |