前言
dynamic
是一种有别于传统变量类型的动态类型声明,刚开始接触可能在理解上会有些困难,可以简单地把它理解为一个盲盒,你可以任意猜测盒子有什么东西,并认为这些东西真正存在而进行处理,等到真正打开时,才能真正确定这些东西是不是真的存在。
所以,当使用 dynamic
声明一个变量时,编译器不会去检查该变量的成员或方法的有效性,换句话说,你可以调用任意成员或方法,即使它们不存在,编译器也不会报错,等到程序运行的时候,才会去解析,如果不存在,才会抛出错误。
dynamic
类型的这种特性,使得它在编程时非常灵活,很适合某些场景,比如与动态语言或COM互操作时,还有反射、JSON序列化/反序列化 等等。
下面分享一个将 dynamic 变量转为其它类型的技巧和实例。
Step By Step 步骤
-
Linq 直接返回 List 变量
private List<dynamic> BaseDataOfYZ( QueryParam param, string[] uos, string[] ugs, string uoEM, string ugEM, string wType) { var query = BaseDataQuery(param, uos) .Select(x => new { x.wType, x.UO, x.UG }) .GroupBy(x => x.wType) .Select(x => new { wType = wType, UONum1 = x.Count(t =&g