web-dev-qa-db-ja.com

'System.Collections.IEnumerable'を実装していないため、タイプ ''をコレクション初期化子で初期化できません

プロパティとして3つのクラスを保持するクラスを作成しました。

   public class Feeds
   {
         public Rentals Rentals { get; set; }
         public Agent Agents { get; set; }
         public NorthwindService.ServiceReference1.File File { get; set; }
    }

私はこれを次のように使用しています:

   var query = from r in ent.Rentals
               join a in ent.Agents on r.ListingAgentID equals a.AgentID
               select new Feeds
               {
                        a.AgentID,
                        a.Alias,
                        a.Bio,
                        a.Email,
                        a.Fax,
                        r.Firstname,
                        r.IsStaff,
                        r.Languages
               }

しかし、私はエラーが発生しています:

「System.Collections.IEnumerable」C:\ Users\NorthwindService\NorthwindService\WebForm1.aspx.cs

解決策を提案してください

38
DotnetSparrow

する必要があります:

var query = from r in ent.Rentals
           join a in ent.Agents on r.ListingAgentID equals a.AgentID
           select new Feeds
           {
                    Agents = a,
                    Rentals = r
           }
40
Piotr Auguscik

ここでは、C#のコレクション初期化子を使用しています。

new myClass{a,b,c} 

ここで、myClassはコレクションであり、a、b、cはこのコレクションに挿入されます。

ただし、使用する必要がある表記はオブジェクト初期化子です。

new myClass{
   myProperty1 = a,
   myProperty2 = b,
   myProperty3 = c
}

myClassのメンバーが初期化される場所。または、クラシックコンストラクターを使用し、かっこで括弧を変更する必要がある場合があります。

new myClass(a,b,c)
54
remi bourgarel