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

Mur*_*uga 22 linq tolist

我需要将linq查询结果转换为列表.我尝试了以下代码:

var qry = from a in obj.tbCourses
                     select a;

List<course> lst = new List<course>();
lst = qry.ToList();
Run Code Online (Sandbox Code Playgroud)

上面的代码发生以下错误:

Cannot implicitly convert type 
System.Collections.Generic.List<Datalogiclayer.tbcourse> to
System.Collections.Generic.List<course>
Run Code Online (Sandbox Code Playgroud)

小智 24

List<course> = (from c in obj.tbCourses
                 select 
                new course(c)).toList();
Run Code Online (Sandbox Code Playgroud)

您可以直接在通话中将实体对象转换为列表.有方法将它转换为不同的数据结构(列表,数组,字典,查找或字符串)


小智 21

没必要做那么多的作品..

var query = from c in obj.tbCourses
        where ...
        select c;
Run Code Online (Sandbox Code Playgroud)

然后你可以使用:

List<course> list_course= query.ToList<course>();
Run Code Online (Sandbox Code Playgroud)

这对我来说可以.


Tho*_*que 8

您需要以某种方式将每个tbcourse对象转换为一个实例course.例如,course可以有一个构造函数,需要一个tbcourse.然后,您可以像这样编写查询:

var qry = from c in obj.tbCourses
          select new course(c);

List<course> lst = qry.ToList();
Run Code Online (Sandbox Code Playgroud)


msi*_*man 6

您需要使用select newLINQ关键字将您的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)
                   };
Run Code Online (Sandbox Code Playgroud)

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