Friday, February 27, 2009

LINQ ERROR

I was working with a LINQ sample and stumbled upon the following error.
"The non-generic type 'System.Collections.IEnumerable' cannot be used with type arguments"

XML file I was using :-


Code used :-


//The application is a ASP.net page
XDocument xDoc = XDocument.Load(HttpContext.Current.Server.MapPath("Persons.xml"));

IEnumerable queryNew = from e in xDoc.Descendants("Person")

select new Person{
FirstName = e.Element("FirstName").Value,
LastName = e.Element("LastName").Value,
Salary = Convert.ToInt32(e.Element("Salary").Value)
};


Solution :- IEnumerable is present in both System.Collections.Generic and System.Collections name spaces. The query returns a generic collection. So in this case We should use System.Collections.Generic. So when I provided a "using System.Collections.Generic;" on top of the page, it did the trick for me.

No comments: