27

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>
4

5 に答える 5

32

そんなに多くの仕事をする必要はありません。

var query = from c in obj.tbCourses
        where ...
        select c;

次に、次を使用できます。

List<course> list_course= query.ToList<course>();

それは私にとってはうまくいきます。

于 2012-11-08T11:41:52.670 に答える
30
List<course> = (from c in obj.tbCourses
                 select 
                new course(c)).toList();

呼び出し時にエンティティ オブジェクトを直接リストに変換できます。別のデータ構造体 (リスト、配列、辞書、ルックアップ、または文字列) に変換する方法があります。

于 2013-11-20T22:19:42.880 に答える
8

tbcourse何らかの形で各オブジェクトを のインスタンスに変換する必要がありますcourse。たとえばcourse、 を受け取るコンストラクターを持つことができますtbcourse。次に、次のようにクエリを記述できます。

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

List<course> lst = qry.ToList();
于 2012-04-26T12:48:16.357 に答える
7

エンティティを明示的にカスタム型にselect new変換するには、LINQ キーワードを使用する必要があります。の例:tbcoursecourseselect 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

于 2012-04-26T12:45:51.863 に答える
4

できることは、すべてを選択して Course の新しいインスタンスにし、その後それらを List に変換することです。

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

qry.toList<Course>();
于 2013-06-15T19:20:31.297 に答える