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

Bim*_*ley 1 c# dynamic

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

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

我怎样才能做到这一点?

Jon*_*eet 7

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

List<object> foo = products.ToList<object>();
Run Code Online (Sandbox Code Playgroud)

甚至只是:

List<object> foo = new List<object>(products);
Run Code Online (Sandbox Code Playgroud)

你无法通过现有的列表,因为List<Product>根本不是一个List<object>.

当然,如果你可以改变你的方法来接受一个IEnumerable<object>,那么由于协方差,这将工作得很好.如果您只是尝试从参数集合中读取,这可能是可行的.

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

List<dynamic> foo = new List<dynamic>(products);
Run Code Online (Sandbox Code Playgroud)