c# – 在LINQ中使用select new返回列表

这是我的方法,它给我错误。

public List<Project> GetProjectForCombo()
{
    using (MyDataContext db = new MyDataContext (DBHelper.GetConnectionString()))
    {
        var query = from pro in db.Projects
                    select new { pro.ProjectName, pro.ProjectId };

        return query.ToList();
    }
}

如果我改变它与这:

public List<Project> GetProjectForCombo()
{
    using (MyDataContext db = new MyDataContext (DBHelper.GetConnectionString()))
    {
        var query = from pro in db.Projects
                    select pro;

        return query.ToList();
    }
}

然后它工作正常没有错误。

你能否让我知道如何我只能返回ProjectId和ProjectName。

谢谢。

最佳答案
方法无法返回匿名类型。它必须与方法返回类型中定义的类型相同。检查GetProjectForCombo的签名,并查看您指定的返回类型。

创建一个具有必需属性的ProjectInfo类,然后在新表达式中创建ProjectInfo类型的对象。

class ProjectInfo
{
   public string Name {get; set; }
   public long Id {get; set; }
}

public List<ProjectInfo> GetProjectForCombo()
{
    using (MyDataContext db = new MyDataContext (DBHelper.GetConnectionString()))
    {
        var query = from pro in db.Projects
                    select new ProjectInfo(){ Name = pro.ProjectName, Id = pro.ProjectId };

        return query.ToList();
    }
}

转载注明原文:c# – 在LINQ中使用select new返回列表 - 代码日志