.net 将ienumerable linq列表转换为类型化列表
我有以下问题: 我使用linq以这种方式过滤一些数据:.net 将ienumerable linq列表转换为类型化列表,.net,linq-to-objects,.net,Linq To Objects,我有以下问题: 我使用linq以这种方式过滤一些数据: var listPerson = (from objPerson in ListPerson select new { objPerson.IdPerson, ob
var listPerson = (from objPerson in ListPerson
select new
{
objPerson.IdPerson,
objPerson.ApePerson,
objPerson.NomPerson,
objPerson.EdadPerson,
objPerson.Gender
}).Distinct();
一切正常,但问题是当我试图将listPerson列表转换为
List<PersonClass>
但它抛出一个异常,无法从IEnumerable转换为IEnumerable
提前谢谢。我希望我说得很清楚。您拥有匿名类的实例集合,这些实例是用新的{…}语法创建的。如果不将每个项转换为PersonClass实例,则无法将其转换为PersonClass实例列表。您拥有使用新{…}语法创建的匿名类实例集合。如果不将每个项转换为PersonClass实例,则无法将其转换为PersonClass实例列表。我假设您正在PersonClass对象列表上使用linq,那么为什么不选择该对象呢。使用new关键字创建一个匿名类,它不是PersonClass
var DistPerson = (from objPerson in ListPerson
select objPerson).Distinct();
var DistPersonList = DistPerson.ToList();
我假设您正在PersonClass对象列表上使用linq,那么为什么不选择该对象呢。使用new关键字创建一个匿名类,它不是PersonClass
var DistPerson = (from objPerson in ListPerson
select objPerson).Distinct();
var DistPersonList = DistPerson.ToList();
您正在linq语句中创建匿名类型。您需要一种方法将该匿名类型的实例转换为PersonClass的实例
var DistPerson = (from objPerson in ListPerson
select objPerson).Distinct();
var DistPersonList = DistPerson.ToList();
如果ListPerson是一个IEnumerable,您应该能够只执行ListPerson.Distinct.ToList。您正在linq语句中创建一个匿名类型。您需要一种方法将该匿名类型的实例转换为PersonClass的实例
var DistPerson = (from objPerson in ListPerson
select objPerson).Distinct();
var DistPersonList = DistPerson.ToList();
如果ListPerson是一个IEnumerable,您应该能够只执行ListPerson.Distinct.ToList。var ListPerson的类型是IEnumerable,而不是IEnumerable 而不是
select new
{
objPerson.IdPerson,
objPerson.ApePerson,
objPerson.NomPerson,
objPerson.EdadPerson,
objPerson.Gender
}
做:
如果您确实需要该匿名类型,并且以后要将其转换为列表,则可以执行其他选择:
listPerson.Select(p => new ListPerson() { IdPerson = p.Person, /* ... */ });
或
变量listPerson的类型为IEnumerable,而不是IEnumerable 而不是
select new
{
objPerson.IdPerson,
objPerson.ApePerson,
objPerson.NomPerson,
objPerson.EdadPerson,
objPerson.Gender
}
做:
如果您确实需要该匿名类型,并且以后要将其转换为列表,则可以执行其他选择:
listPerson.Select(p => new ListPerson() { IdPerson = p.Person, /* ... */ });
或