C# 如何将double[]强制转换为System.Windows.Media.DoubleCollection?
有没有办法在不复制值的情况下访问它?快速回答是否C# 如何将double[]强制转换为System.Windows.Media.DoubleCollection?,c#,.net,silverlight,C#,.net,Silverlight,有没有办法在不复制值的情况下访问它?快速回答是否 DoubleCollection具有一个可使用的IEnumerable: DoubleCollection dc = new DoubleColection(myArray); 这仍将创建每个值的副本。不幸的是,需要复制这些值,但这将自动为您执行: var foo = new double[] { 1.0, 2.5, 3.3, 4.1, 5.9 }; var bar = new DoubleCollection(foo); 编辑… 您已经指定
DoubleCollection
具有一个可使用的IEnumerable
:
DoubleCollection dc = new DoubleColection(myArray);
这仍将创建每个值的副本。不幸的是,需要复制这些值,但这将自动为您执行:
var foo = new double[] { 1.0, 2.5, 3.3, 4.1, 5.9 };
var bar = new DoubleCollection(foo);
编辑…
您已经指定使用Silverlight,这意味着没有这样的构造函数可用。在这种情况下,你需要自己做所有的工作(并不是说它实际上需要很多额外的工作):
您应该可以使用来执行此操作,但实际上,这可能只是在复制值,因此我会将其反映出来以确保。尝试了您的代码。已获取“'System.Windows.Media.DoubleCollection'不包含接受1个参数的构造函数。”尽管MSDN中有这样的构造函数:。但已了解问题所在。我使用的是Silverlight,不是完整的.NET框架。
DoubleCollection dCollection = new DoubleColection(myDoubleArray);
DoubleCollection dCollection = new DoubleColection(myDoubleArray);