【问题标题】:Converting from Var to Dynamic list and perform operations [duplicate]从 Var 转换为动态列表并执行操作 [重复]
【发布时间】:2013-02-19 14:59:56
【问题描述】:

我有以下类型的代码 sn-p。

var PersonList = new List<person>() { 
                new person { Name = "b", Age = 4 },
                new person { Name = "s", Age = 2 },
                new person { Name = "e", Age = 5 },
                new person { Name = "a", Age = 1 },
            }.AsQueryable();

// Now somewhere in usercontrol I am converting that list to dynamic.
dynamic DynaList = PersonList;

// Now below line gives me error when I try to perform any on DynaList.
DynaList.ToList(); // Error - BinderException
DynaList.OrderBy("Name"); // Error - BinderException

为什么动态没有转换到它的类型运行时?

【问题讨论】:

  • 好的。感谢您的链接。

标签: c# linq generics dynamic var


【解决方案1】:

您不能对动态类型使用扩展方法,就好像扩展方法是实例上的方法一样。请参阅此SO post 和此SO post。您必须在底层静态类上使用扩展方法。

【讨论】:

  • 如果您看到重复,请投票关闭,而不是将其链接到答案中以获取一些代表。
【解决方案2】:

动态类型不支持扩展方法。希望这个Link 能解释一下原因……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    • 2012-11-07
    • 2021-08-07
    • 2017-09-18
    • 2017-04-08
    • 2014-04-13
    • 1970-01-01
    相关资源
    最近更新 更多