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

Rob*_*ers 20 vb.net collections list

有没有办法在不迭代List并将项添加到ObservableCollection的情况下执行此操作?

Nes*_*cio 40

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

Dim list as new List(of string)
...some stuff to fill the list...
Dim observable as new ObservableCollection(of string)(list)
Run Code Online (Sandbox Code Playgroud)


Jun*_*r M 18

我迟到但我想分享这个有趣的部分,如果你需要一个循环,将列表转换为ObservableCollection:

public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> coll)
{
    var c = new ObservableCollection<T>();
    foreach (var e in coll) c.Add(e);
    return c;
}
Run Code Online (Sandbox Code Playgroud)

您可以将集合传递给ObservableCollection构造函数:

List<Product> myProds = ......
ObservableCollection<Product> oc = new ObservableCollection<Product>(myProds);
Run Code Online (Sandbox Code Playgroud)

现在你必须将这些翻译成VB.NET :)