如何将 double[] 转换为 System.Windows.Media.DoubleCollection?

Ser*_*gey 2 .net c# silverlight

有没有办法在不复制值的情况下做到这一点?

Luk*_*keH 6

不幸的是,这些值需要复制,但DoubleCollection有一个构造函数可以自动为您完成:

var foo = new double[] { 1.0, 2.5, 3.3, 4.1, 5.9 };
var bar = new DoubleCollection(foo);
Run Code Online (Sandbox Code Playgroud)

编辑...

您已指定使用 Silverlight,这意味着没有可用的此类构造函数。在这种情况下,您需要自己完成所有工作(并不是说它实际上需要很多额外的工作):

var foo = new double[] { 1.0, 2.5, 3.3, 4.1, 5.9 };
var bar = new DoubleCollection();
foreach (double d in foo) bar.Add(d);

// or, if you prefer Array.ForEach to a foreach loop...
// Array.ForEach(foo, d => bar.Add(d));
Run Code Online (Sandbox Code Playgroud)