我知道我可以通过执行List<T>
从IEnumerable<T>
创建myEnumerableCollection.ToList()
,但我怎样才能为ObservableCollection<T>
实现相同的内容?
答案 0 :(得分:6)
您正在寻找的是扩展方法。
您可以像这样扩展IEnumerable<T>
类型:
namespace myNameSpace
{
public static class LinqExtensions
{
public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> _LinqResult)
{
return new ObservableCollection<T>(_LinqResult);
}
}
}
不要忘记在要使用它的类中添加using指令(即:using myNameSpace;
)
答案 1 :(得分:3)
你为什么需要施展它?这是常见操作的语法糖。
var observableCollection = new ObservableCollection<object>(regularCollection);
答案 2 :(得分:1)
这对我有用:
List<string> ll = new List<string> { "a", "b","c" };
ObservableCollection<string> oc = new ObservableCollection<string>(ll);
答案 3 :(得分:0)
您必须创建使用您的集合填充的新ObservableCollection实例(IEnumerable)。