c# - 将 Deedle 数据框转换为自定义类的 C# 列表
问题描述
我从外部 API 接收数据作为 Deedle 数据框。我需要获取这些数据并将其转换为要通过实体框架插入数据库的自定义类的列表。
有人能指出我正确的方向吗?我以前没有使用过 Deedle,并且无法找到提取数据的最佳方法。
我需要填充的自定义对象如下所示:
public class FrameData
{
public string SecurityId { get; set; }
public string FieldName { get; set; }
public DateTime Date { set; get; }
public decimal value { get; set; }
}
谢谢,尼克
解决方案
有很多方法可以从 Deedle 框架中获取数据。实体框架是否允许您使用接口?如果是这样,那么有一个很好的功能GetRowsAs
可以让你这样做:
// Given a simple Person interface
public interface Person {
int Age { get; }
string Name{ get; }
}
// And a sample data frame with some data
Frame<int, string> df = Frame.FromValues(new[] {
Tuple.Create(1, "Name", (object) "One"),
Tuple.Create(2, "Name", (object) "Two"),
Tuple.Create(1, "Age", (object) 42),
Tuple.Create(2, "Age", (object) 21)
});
// You can get an array of rows using
var rows = df.GetRowsAs<Person>();
如果 Entity Framework 不能处理接口,那么这个方法很遗憾是行不通的。在这种情况下,您将需要以下内容:
var rows =
df.Rows.Select(row =>
new Person { Name = row.Value.GetAs<string>("Name"),
Age = row.Value.GetAs<int>("Age"))).Observations;
推荐阅读
- python - 如何从运行在 EMR 从节点上的 mapPartitions 中杀死所有 Spark 进程?
- android - 导航组件:通过底部导航将捆绑包传递到目的地
- angular - 单击另一列后如何从表列中删除 HTML 元素
- python - 当我尝试加载图像时,Qt Designer 错误与 Python 抛出错误
- kotlin - Kotlin 对字符串的可变映射进行排序
- .net - 在 MVC 应用程序中排队电子邮件
- ruby-on-rails - 使用枚举选择性别不起作用
- sql - 无法继续执行,因为会话处于 kill 状态
- three.js - 如何在从搅拌机导出为 wrl 并使用 VRMLLoader 导入到 Threejs 的网格上应用纹理
- angular-ui-router - 在 ionic 4 中从单页视图导航到侧面菜单布局