c# - 强类型对象列表到动态列表

标签 c# dynamic

好的。我正在尝试 List<Product>并将其传递给采用通用 List<object> 的方法并循环遍历它们以创建一个 List<dynamic>通过反射。此方法需要能够处理其他对象的列表(即:Item、Customer、Package 等)。

我的想法是,我将拥有一个通用的动态列表,我可以通过 JSON 通过网络发送它。

我怎样才能做到这一点?

最佳答案

最简单的方法是只使用 LINQ 构建一个新列表。鉴于您使用的是 .NET 4,您可以使用协方差,因此您可以使用:

List<object> foo = products.ToList<object>();

甚至只是:

List<object> foo = new List<object>(products);

您不能传递现有列表,因为 List<Product>只是不是 List<object> .

当然,如果您可以更改方法以接受 IEnumerable<object>相反,由于协方差,这会很好地工作。如果您只是尝试从参数集合中读取,这可能是可行的。

请注意,不清楚为什么需要使用反射来创建 List<dynamic> - 你的方法实际上在做什么?为什么你不能只使用:

List<dynamic> foo = new List<dynamic>(products);

关于c# - 强类型对象列表到动态列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14165048/

相关文章:

php - 通过 MySQL 动态启用和禁用 DIV

c# - 想要在运行时在程序集内加载程序集?

c# - 将 datareader 值转换为可空变量

c# - Json.Net 反序列化对象给我空对象

c# - 下面这个语句有什么问题

C++动态分配二维数组

c# - 为 IDBCommand 与 SqlCommand.ExecuteNonQueryAsync 实现 Async ExecuteNonQuery()

c# - 为什么反射找不到属性

Javascript 使用动态数组防止 "undefined"值

c++ - std::dynamic_pointer_cast 成功调用非初始化类