我有以下问题:
我使用LINQ to滤液这样一些数据:
I'm using linq to filtrate some data in this way:
var listPerson = (from objPerson in ListPerson
select new
{
objPerson.IdPerson,
objPerson.ApePerson,
objPerson.NomPerson,
objPerson.EdadPerson,
objPerson.Gender
}).Distinct();
一切工作正常,但问题是当我试图投listPerson列表到
Everything works fine, but the problem is when i tried to cast the listPerson List to a
List<PersonClass>
我怎么能这样做投?我想:
How can i do that cast ? I tried:
listPerson.ToList();
但是,它抛出一个异常(不能自IEnumerable转换为IEnumerable的)。
But it throws an exception (cannot convert from IEnumerable to IEnumerable).
在此先感谢。我希望我自己清楚。
Thanks in advance. I hope i made myself clear.
推荐答案
VAR listPerson的类型的IEnumerable&LT的; COMPILERGENERATEDANONYMOUSTYPE&gt;中并不是一个IEnumerable的&LT; PersonClass&GT;
var listPerson is of type IEnumerable<COMPILERGENERATEDANONYMOUSTYPE>, not a IEnumerable<PersonClass>.
select new
{
objPerson.IdPerson,
objPerson.ApePerson,
objPerson.NomPerson,
objPerson.EdadPerson,
objPerson.Gender
}
做的:
select new PersonClass()
{
IdPerson = objPerson.IdPerson,
// etc
}
如果你真的需要一个匿名类型出现,并在以后转换到一个列表,那么你可以做的另一种选择:
If you really need that anonymous type there, and to convert it to a list later, then you can do another select:
listPerson.Select(p => new ListPerson() { IdPerson = p.Person, /* ... */ });
或
listPerson.Select(p => new ListPerson(p.Person, /* ... */ ));
相关推荐
最新文章