【发布时间】:2014-08-19 00:40:01
【问题描述】:
我正在尝试做一个简单的数据系列测试,一切都按预期工作,但我想切换
List<DateTime> events = new List<DateTime>();
到
List<dynamic> events = new List<dynamic>();
当我将列表切换为动态时,我收到了这 2 个错误。 “找不到编译动态表达式所需的一种或多种类型。您是否缺少参考?”并且这两个错误发生在 Console.Writeline 上
知道如何动态输出列表吗?
这是我的代码:
[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());
}
【问题讨论】:
-
虽然您不应该真正制作一个通用列表,而是使用接口或代表行为的东西,但您可以在那里使用
object而不是dynamic,它会起作用。 -
您的测试项目中是否引用了“Microsoft.CSharp”?您是否在
Console.WriteLine通话中看到该错误? -
我必须在稍后的代码中使用动态来调用,特拉维斯......否则我会使用对象
-
我在 Console.WriteLine 调用中看到了这一点,马里奥。
-
这里的答案有什么问题stackoverflow.com/questions/24453865/…