c# - Datatable to dictionary 几列

标签 c# dictionary linq-to-sql

我正在尝试使用描述的方法将数据表转换为字典 here , 但我得到一个错误

Cannot implicitly convert type System.Collections.Generic.Dictionary>' to 'System.Collections.Generic.Dictionary``.

link帮助,但只有一个值被拉入字典,而不是我需要的几个。

感谢您的帮助。

public class MCEAV
{
    public int ID { get; set; }
    public int BOOK_ID { get; set; }
    public double DATA { get; set; }
}

Dictionary<int, MCEAV> dctGREEKS = new Dictionary<int, MCEAV>();
dctGREEKS = DATActx.MONTECARLO_EAVs.Select(Z => new { Z.ID, Z.BOOK_ID, Z.DATA}).ToDictionary(Z => Z.ID);

最佳答案

使用new时需要指定类名,否则为匿名类型:

dctGREEKS = DATActx.MONTECARLO_EAVs.Select(Z => 
                               new MCEAV()
                               { 
                                  ID = Z.ID, 
                                  BOOK_ID = Z.BOOK_ID, 
                                  DATA = Z.DATA
                               }).ToDictionary(Z => Z.ID);

所以 new { Z.ID, Z.BOOK_ID, Z.DATA} 是编译器创建的匿名类型的实例,而 new MCEAV() 是一个MCEAV 类型的实例,这就是您想要的字典。

关于c# - Datatable to dictionary 几列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38652121/

相关文章:

linq - 无法使用 SelectMany 获取 DocumentDb LINQ 查询中的父属性

c# - 如何使用 opendicom.net 库进行 dicom 处理

python - 在 Python 中检索单个字典元素

json - 使用接口(interface)与 Golang 映射和结构以及 JSON

r - 如何使用 purrr :map function? 使用动态变量改变多列

c# - 将 Func 作为参数传递给Where 子句时出现问题

sql - LINQ-to-SQL 是否支持可组合查询?

c# - 使用 linq 按父级对对象列表进行分组以输出子元素

c# - 将 C# RSACryptoServiceProvider 翻译成 JAVA 代码

c# - 在 DataGridView 中搜索数据时出现 NullReferenceException