vb.net - 中的list - c#空list




如何在VB.NET中将List(Of T)转换为ObservableCollection(Of T)? (4)

有没有办法做到这一点,而无需遍历列表并将项目添加到ObservableCollection?


不,没有办法直接将列表转换为可观察的集合。 您必须将每个项目添加到集合中。 但是,下面是允许框架枚举值并将其添加到您的快捷方式。

Dim list as new List(of string)
...some stuff to fill the list...
Dim observable as new ObservableCollection(of string)(list)

即使我迟到了,我想和Junior分享一个快速增强的答案:让开发者定义用于将源集合中的可观察集合对象转换为目标集合对象的转换器函数。

如下所示:

public static ObservableCollection<TDest> ToObservableCollection<TDest, TSource>(this IEnumerable<TSource> coll, Func<TSource, TDest> converter)
    {
        var c = new ObservableCollection<TDest>();
        foreach (var e in coll)
        {
            c.Add(converter(e));
        }
        return c;
    }

澄清少年说什么(如果您使用的LINQ返回一个IEnumerable一个额外的例子):

//Applications is an Observable Collection of Application in this example
List<Application> filteredApplications = 
      (Applications.Where( i => i.someBooleanDetail )).ToList();
Applications = new ObservableCollection<Application>( filteredApplications );

ObservableCollection<yourobjectname> result = new ObservableCollection<yourobjectname>(yourobjectlist);




list