gpt4 book ai didi

c# - 无法转换类型为 '<>f__AnonymousType5` 6 的对象

转载 作者:太空狗 更新时间:2023-10-30 00:14:17 25 4
gpt4 key购买 nike

我有两个列表。从一个我想要两个选择一些数据,然后将该数据保存到另一个列表。

var ikj = Model.EmployeeInformationList
.Select(m => new { m.GEmployeeGenInfoID, m.strDesignationName, m.strEmpOldCardNo, m.StrEmpID, m.GFactoryID, m.StrEmpName })
.Distinct().ToList();


List<HolidayAlwEmployeeInfo> targetList = new List<HolidayAlwEmployeeInfo>(ikj.Cast<HolidayAlwEmployeeInfo>());

Model.HolidayAlwEmployeeInfoList = targetList;

但是我收到了这个错误

Unable to cast object of type '<>f__AnonymousType5`6[System.Guid,System.String,System.String,System.String,System.Guid,System.String]' to type 'FactoryProduct.Entities.Payroll.HolidayAlwEmployeeInfo'

最佳答案

您正在尝试转换通过调用 new { m.GEmployeeGenInfoID, m.strDesignationName, m.strEmpOldCardNo, m.StrEmpID, m.GFactoryID, m.StrEmpName } 创建的匿名类型的实例到 HolidayAlwEmployeeInfo 类型,你不能那样做。

相反,您需要像这样重写第一行:

var ikj = Model.EmployeeInformationList
.Select(m => new HolidayAlwEmployeeInfo(
m.GEmployeeGenInfoID,
m.strDesignationName,
m.strEmpOldCardNo,
m.StrEmpID,
m.GFactoryID,
m.StrEmpName ))
.Distinct()
.ToList();

并确保 HolidayAlwEmployeeInfo 类具有适当的构造函数来获取所有参数 m.GEmployeeGenInfoIDm.strDesignationName m.strEmpOldCardNom.StrEmpIDm.GFactoryIDm.StrEmpName

或者(正如 Stephen Muecke 在他的评论中提到的),您可以使用简单的构造函数实例化 HolidayAlwEmployeeInfo 并在初始化程序中分配属性/字段,如下所示:

var ikj = Model.EmployeeInformationList
.Select(m => new HolidayAlwEmployeeInfo()
{
GEmployeeGenInfoID=m.GEmployeeGenInfoID,
strDesignationName=m.strDesignationName,
strEmpOldCardNo=m.strEmpOldCardNo,
StrEmpID=m.StrEmpID,
GFactoryID=m.GFactoryID,
StrEmpName=m.StrEmpName
})
.Distinct()
.ToList();

关于c# - 无法转换类型为 '<>f__AnonymousType5` 6 的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30748609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com