如何将LINQ查询结果转换为List?

时间:2012-04-26 12:40:33

标签: linq tolist

我需要将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>

5 个答案:

答案 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实体明确转换为自定义类型courseselect 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)
                   };

http://www.hookedonlinq.com/LINQtoSQL5MinuteOverview.ashx

答案 4 :(得分:1)

您可以做的是将所有内容选择到新的课程实例中,然后将其转换为列表。

var qry = from a in obj.tbCourses
                     select new Course() {
                         Course.Property = a.Property
                         ...
                     };

qry.toList<Course>();