强类型对象列表,列出动态列表

时间:2013-01-04 21:12:32

标签: c# dynamic

行。我正在尝试使用List<Product>并将其传递给一个方法,该方法采用泛型List<object>并循环遍历它们以通过反射创建List<dynamic>。此方法需要能够处理其他对象的列表(即:项目,客户,包等)。

这个想法是这样我将拥有一个动态的通用列表,我可以通过线路通过JSON发送。

我怎样才能实现这一目标?

1 个答案:

答案 0 :(得分:7)

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

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

甚至只是:

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

您无法通过现有列表,因为List<Product>只是不是 a List<object>

当然,如果你可以改变你的方法来接受IEnumerable<object>,那么由于协方差,这种方法会很好。如果您只是尝试从参数集中读取,这可能是可行的。

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

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