Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C“动态-”;RuntimeBinderException“;_C#_C# 4.0_Dynamictype - Fatal编程技术网

C# C“动态-”;RuntimeBinderException“;

C# C“动态-”;RuntimeBinderException“;,c#,c#-4.0,dynamictype,C#,C# 4.0,Dynamictype,我正在使用ExpandoObject初始化dynamic并向其中添加一些项 dynamic dy = new System.Dynamic.ExpandoObject(); dy.Property2 = new List<string>(); dy.Property2.Add("Two"); dy.Property2.Insert(0, "Zero"); var coll1 = (List<stri

我正在使用ExpandoObject初始化dynamic并向其中添加一些项

        dynamic dy = new System.Dynamic.ExpandoObject();
        dy.Property2 = new List<string>();
        dy.Property2.Add("Two");
        dy.Property2.Insert(0, "Zero");
        var coll1 = (List<string>)dy.Property2;
        var element = coll1.ElementAt(0);

“System.Collections.Generic.List”不包含“ElementAt”的定义,这是绝对正确的-
List
没有
ElementAt
方法。它只适用于原始代码,因为它是
IEnumerable
上的扩展方法。动态类型不允许使用“特殊”语法调用扩展方法,但可以将其作为普通静态方法调用调用:

var data = Enumerable.ElementAt(dy.Property2, 0);

在MSDN for dynamic上写着“类型是静态类型,但类型为dynamic的对象会绕过静态类型检查。在大多数情况下,它的功能就像它有类型对象一样”你能解释一下吗,需要理解吗???@slashshogdhe:不是在注释线程中,不。关于
动态
(我在C#Depth中写了整整一章)-在评论中详细说明确实不合适。提出了一个关于stackoverflow的问题,请立即提供帮助。
var data = Enumerable.ElementAt(dy.Property2, 0);