为什么我不能使用动态?

时间:2014-06-27 19:43:12

标签: c# dynamic

我正在尝试进行简单的数据系列测试,并且所有内容都按预期工作,但我想切换

List<DateTime> events = new List<DateTime>();

List<dynamic> events = new List<dynamic>();

当我将列表切换为动态时,我收到了这两个错误。 “无法找到编译动态表达式所需的一种或多种类型。您是否缺少引用?”并且这两个错误发生在Console.Writeline

知道如何用动态输出List吗?

这是我的代码:

 [TestMethod]
        public void TimeSeriesData()
        {
            List<dynamic> events = new List<dynamic>();
            var stream = new
            {
                Id = 15,
                Name = "StreamA" + 15,
                TypeId = "TypeA"
            };
            _server.PostStream(stream);

            DateTime startTime = DateTime.Today;  //  12:00
            DateTime endTime = DateTime.Today; // 12:00 +1 sec
            endTime = endTime.AddDays(1);
            endTime=endTime.AddSeconds(1);

            for (int i = 0; i < 3000; i++)
            {
                if (i % 2 == 0) //is even
                {
                    var dataStart = new
                    {
                        TimeId = startTime.AddSeconds(i),
                        ValueStart = i
                    };

                    events.Add(startTime.AddSeconds(i));
                }

                else  //is odd
                {
                    var dataEnd = new
                    {
                        TimeEnd = endTime.AddSeconds(-i),
                        ValueEnd = i

                    };
                    events.Add(endTime.AddSeconds(-i));
                }


            }

            foreach (var item in events)
                Console.WriteLine("Time: {0} ", item.ToString());
}

1 个答案:

答案 0 :(得分:-1)

不确定,这很好用:

        var l = new List<dynamic>();
        l.Add(new {dt=DateTime.Now});
        l.Add(DateTime.Now);

        foreach (var o in l)
        {
            Console.WriteLine(o.ToString());
        }

您的代码在我的计算机上编译并运行良好。