c# - 将列表转换为 ObservableCollection

标签 c# xamarin

我需要将从 api 调用获得的列表转换为 ObservableCollection 以放入我的图表中。

我尝试了这两种方法:

方法1:

ObservableCollection<ChartDataModel> test = new ObservableCollection<ChartDataModel>(_CoinHistoryGraph as List<CoinHistoryModel>);

方法 1 错误:

cannot convert from 'System.Collections.Generic.List<CoinMarketCap.SHARED.Models.CoinHistoryModel>' to 'System.Collections.Generic.List<CoinMarketCap.SHARED.ViewModels.ChartDataModel>'    CoinMarketCap.SHARED    

方法2:

CoinHistory = _CoinHistoryGraph.Select(x => new ChartDataModel(float.Parse(x.price_btc), double.Parse(x.timestamp)));

方法2错误:

'System.Collections.Generic.IEnumerable<CoinMarketCap.SHARED.ViewModels.ChartDataModel>' to 'System.Collections.ObjectModel.ObservableCollection<CoinMarketCap.SHARED.ViewModels.ChartDataModel>'.

型号:

 public class GraphModel
{
    public GraphModel(float pricebtc, double time_stamp)
    {
        price_btc = pricebtc;
        timestamp = time_stamp;
    }

    public float price_btc { get; set; }
    public double timestamp { get; set; }
}

  public class CoinHistoryModel
{
    public string name { get; set; }
    public string price_btc { get; set; }
    public string timestamp { get; set; }

}

最佳答案

要从 CoinHistoryModel 列表创建 ObservableCollection,最好使用以下代码:

CoinHistory = new ObservableCollection<ChartDataModel>(_CoinHistoryGraph.Select(x => new ChartDataModel(float.Parse(x.price_btc), double.Parse(x.timestamp))));

您的第一段代码不起作用,因为您想从 CoinHistoryModel 类型的集合创建 ChartDataModel 类型的 ObservableCollection。
关于你的第二段代码,错误消息已经足够清楚了。您想要将 IEnumerable 对象显式转换为 ObservableCollection 对象。
要从 type1 的集合创建 type1 的 ObservableCollection,您可以将该集合作为 ObservableCollection 第一个构造函数参数传递。

关于c# - 将列表转换为 ObservableCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50202787/

相关文章:

c# - 在 C# 中调用基本构造函数

c# - 从 C# 调用 Win32 是否有更轻松的方法?

android - 如何在 Xamarin From 中定义 Entry 用户名/密码/名字/姓氏,以便 android 会自动填充它?

android - ImageButton 在 MVVMCross 中的可见性

ios - 自定义单元格标签不起作用

iOS UIFont.ByName 异常(值不能为空。参数名称 : value)

c# - 在 P/Invoke 中使用 ref struct 或 class

c# - ChrW(e.KeyCode) 的 C# 等价物是什么?

c# - 我认为我误解了 Unity3d 的层次结构系统

c# - instanceof 检查动态类型