如何拥有IEnumerable <t> .ToObservableCollection()?</t>

时间:2012-06-19 15:08:39

标签: c# wpf

我知道我可以通过执行List<T>IEnumerable<T>创建myEnumerableCollection.ToList(),但我怎样才能为ObservableCollection<T>实现相同的内容?

4 个答案:

答案 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)。