2

我知道我可以通过做来创建一个List<T>from ,但是我怎样才能为一个实现同样的事情呢?IEnumerable<T>
myEnumerableCollection.ToList()ObservableCollection<T>

4

4 回答 4

9

您正在寻找的是扩展方法。

您可以像这样扩展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;:)

于 2012-06-19T15:11:47.973 回答
5

为什么你需要投射它?这是常见操作的语法糖。

var observableCollection = new ObservableCollection<object>(regularCollection);
于 2012-06-19T15:11:35.773 回答
1

这对我有用:

 List<string> ll = new List<string> { "a", "b","c" };
 ObservableCollection<string> oc = new ObservableCollection<string>(ll);
于 2012-06-19T15:14:48.063 回答
0

您必须创建新的 ObservableCollection 实例,其中填充了您的集合(IEnumerable)。

于 2012-06-19T15:11:04.967 回答