Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot initialize type '' with a collection initializer because it does not implement 'System.Collections.IEnumerable'

Tags:

c#

asp.net

linq

I have created a class which holds three classes as properties:

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

and I am using it like this:

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
            };

but I am getting the error:

Cannot initialize type 'NorthwindService.WebForm1.Feeds' with a collection initializer because it does not implement 'System.Collections.IEnumerable' C:\Users\NorthwindService\NorthwindService\WebForm1.aspx.cs

Please suggest a solution.

like image 753
DotnetSparrow Avatar asked Dec 04 '11 15:12

DotnetSparrow


2 Answers

You are using here the collection initializer in C# :

new myClass{a,b,c} 

where myClass is a collection, and a,b,c will be inserted into this collection.

But, the notation you need to use is the object initializer:

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

where the member of a myClass will be initialized. Or maybe you need to use classic constructor and then change your bracket with parenthesis:

new myClass(a,b,c)
like image 149
remi bourgarel Avatar answered Oct 20 '22 08:10

remi bourgarel


Should be:

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
           }
like image 47
Piotr Auguscik Avatar answered Oct 20 '22 09:10

Piotr Auguscik