web-dev-qa-db-fra.com

Impossible d'initialiser le type '' avec un initialiseur de collection car il n'implémente pas 'System.Collections.IEnumerable'

J'ai créé une classe qui contient trois classes en tant que propriétés:

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

et je l'utilise comme ceci:

   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
               }

mais je reçois une erreur:

Impossible d'initialiser le type 'NorthwindService.WebForm1.Feeds' avec un initialiseur de collection car il n'implémente pas 'System.Collections.IEnumerable' C:\Users\NorthwindService\NorthwindService\WebForm1.aspx.cs

Veuillez suggérer une solution

38
DotnetSparrow

Devrait être:

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

Vous utilisez ici l'initialiseur de collection en C #:

new myClass{a,b,c} 

où myClass est une collection et a, b, c seront insérés dans cette collection.

Mais, la notation que vous devez utiliser est l'initialiseur d'objet:

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

où le membre d'une myClass sera initialisé. Ou peut-être devez-vous utiliser un constructeur classique puis changer votre parenthèse avec des parenthèses:

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