在C#4.0中实现IEnumerable

use*_*310 2 .net c# ienumerable linq-to-objects .net-4.0

我有这门课:

public class Detail
{
    public Detail() { }
    public Detail(Guid Id, DateTime InstanceDate, string Name)
    {
        CId = Id;
        StateInstanceDate = InstanceDate;
        StateName = Name;
    }

    public Guid CId { get; set; }
    public DateTime StateInstanceDate { get; set; }
    public string StateName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

以及我如何尝试使用LINQ访问数据:

public List<Detail> Getinfo()
{
    CaseContext cs = new CaseContext();
    var query = (from p in cs.table1    
                join q in cs.table2  
                 on p.StateKey equals q.StateKey 
                 select new Detail
                 {
                     p.CId,
                     p.InstanceDate,
                     q.StateName
                 }).ToList<Detail>();

    cs.Dispose();
    return query;
}
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误,

无法使用集合初始值设定项初始化类型"详细信息",因为它未实现"System.Collections.IEnumerable"

有帮助吗?

Bro*_*ass 8

您必须正确分配属性或使用构造函数:

select new Detail( p.CId, p.InstanceDate, q.StateName)
Run Code Online (Sandbox Code Playgroud)

要么

select new Detail 
{
  CId = p.CId, 
  StateInstanceDate = p.InstanceDate, 
  StateName = q.StateName 
}
Run Code Online (Sandbox Code Playgroud)