我需要将linq查询结果转换为列表。我尝试了以下代码:
var qry = from a in obj.tbCourses
select a;
List<course> lst = new List<course>();
lst = qry.ToList();
以上代码出现以下错误:
Cannot implicitly convert type
System.Collections.Generic.List<Datalogiclayer.tbcourse> to
System.Collections.Generic.List<course>
答案 0 :(得分:24)
List<course> = (from c in obj.tbCourses
select
new course(c)).toList();
您可以直接在通话中将实体对象转换为列表。有方法可以将它转换为不同的数据结构(列表,数组,字典,查找或字符串)
答案 1 :(得分:20)
无需做太多工作..
var query = from c in obj.tbCourses
where ...
select c;
然后你可以使用:
List<course> list_course= query.ToList<course>();
它适用于我。
答案 2 :(得分:8)
您需要以某种方式将每个tbcourse
对象转换为course
的实例。例如,course
可以有一个tbcourse
的构造函数。然后你可以像这样编写查询:
var qry = from c in obj.tbCourses
select new course(c);
List<course> lst = qry.ToList();
答案 3 :(得分:5)
您需要使用select new
LINQ关键字将tbcourse
实体明确转换为自定义类型course
。 select new
的示例:
var q = from o in db.Orders
where o.Products.ProductName.StartsWith("Asset") &&
o.PaymentApproved == true
select new { name = o.Contacts.FirstName + " " +
o.Contacts.LastName,
product = o.Products.ProductName,
version = o.Products.Version +
(o.Products.SubVersion * 0.1)
};
答案 4 :(得分:1)
您可以做的是将所有内容选择到新的课程实例中,然后将其转换为列表。
var qry = from a in obj.tbCourses
select new Course() {
Course.Property = a.Property
...
};
qry.toList<Course>();