如何在C#中将列表强制转换为可观察的集合?

时间:2018-06-22 13:45:11

标签: c# list casting observablecollection

我有一个要转换为ObservableCollection的列表,这是我的代码

var list = Models.Lands.FromJson(responce.Result.ToString());
this.Lands = new ObservableCollection<Land>( list );

FromJson返回了一个List<Models.Land>,而this.Lands是一个ObservableCollection<Models.Land>

new ObservableCollection<Models.Land>( list )给我以下错误:

  

无法从System.Collections.Generic.List <>转换为   System.Collections.Generic.IEnumerable <>,

我认为构造函数对于List <>对象是重载的。

3 个答案:

答案 0 :(得分:0)

尝试使用非通用var关键字。

List<Land> list =Models.Lands.FromJson(responce.Result.ToString());
var collection = new ObservableCollection<Land>(list);

答案 1 :(得分:0)

我认为您可以执行以下操作来避免问题,但仍使用单行代码:

this.Lands = new ObservableCollection<Land>( list.ToArray<Land>());

但是我不确定这是否是一种有效的方法。

答案 2 :(得分:-1)

在我的浏览器中工作:https://dotnetfiddle.net/VVB8YY

public static void Main()
{
    var list = new List<String>{"a", "b", "c"};
    var collection = new ObservableCollection<string>(list);

    foreach (var value in collection)
    {
        Console.WriteLine(value);
    }

    Console.WriteLine("Hello World");
}