将对象/动态类型转换为匿名类型

本文关键字:类型 类型转换 对象 动态 | 更新日期: 2023-09-27 18:03:14

我有一个EF查询,它返回几个连接表的匿名类型。我把它作为动态函数传递给另一个函数。有没有办法将动态类型转换为已知匿名类型的匿名类型?如果有办法做到这一点,我认为传递它作为一个对象比一个动态,这是正确的吗?

...
var appts = (from a in dbc.tblAppt join b in dbc.tblApptTypes on a.Type equals b.Type select new {a, b}).ToList();
If (appts.Any())
    ProcessAppts(appts);
}
void ProcessAppts(dynamic appts)
{
    var AnonTypeAppts = appts as (new {tblAppt, tblApptTypes}); // This bit here
}

将对象/动态类型转换为匿名类型

No。匿名类型是……匿名的。您不能像在代码中那样将变量强制转换为匿名类型。最好不要通过其他方法传递它们。它们应该保存在室内。你真的不应该用dynamic

我建议创建一个'real'类型,您可以传递给另一个方法