Как я могу привести double [] к System.Windows.Media.DoubleCollection? - PullRequest
1 голос
/ 11 августа 2010

Есть ли способ к нему без копирования значений?

Ответы [ 4 ]

4 голосов
/ 11 августа 2010

К сожалению, значения нужно будет скопировать, но DoubleCollection имеет конструктор , который сделает это автоматически за вас:

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

EDIT ...

Вы указали, что используете 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));
2 голосов
/ 11 августа 2010

Быстрый ответ - нет.

У DoubleCollection есть конструктор , который принимает IEnumerable<Double>, который вы можете использовать:

DoubleCollection dc = new DoubleColection(myArray);

Это все равно создаст копию каждого значения.

0 голосов
/ 11 августа 2010
DoubleCollection dCollection = new DoubleColection(myDoubleArray);
0 голосов
/ 11 августа 2010

Вы должны быть в состоянии использовать конструктор DoubleCollection , чтобы сделать это, но под прикрытием, это может быть просто копированием значений, так что я бы отразил это, чтобы убедиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...