我正在尝试使用描述的方法将数据表转换为字典 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/