2016-03-17 6 views
-1

Я пытаюсь построить график, запросив таблицу для данных, а столбцы таблицы имеют значение NULL. Запрос выполняется нормально, но передавая массив запросов обратно в массив диаграммы вызывает ошибку "cannot implicitly convert from double?[] удвоить []». Я искал сеть без успеха. Любые предложения, пожалуйста?не может неявно конвертировать из double? [] To double []

//code in the windows form 
private void cmdCHART_Click(object sender, EventArgs e) 
     { 
      nmCHART.clsCHART oCHART = new nmCHART.clsCHART(); 

      double[] Y = new double[21]; 
      Y = oCHART.GET_Y_SERIES("CONDOR"); //can't cast double?[] to double[] 
     } 

//get data 
public double?[] GET_Y_SERIES(string GREEK) 
     { 

      var qryY = (from P in Globals.DATA.PAYOFF_EAVs 
         where P.GREEK == GREEK 
         orderby P.DP_NO 
         select P.DATA).ToArray(); 

      return qryY; 
     } 
+0

попытаться положить 'Y = (двойной []) oCHART.GET_Y_SERIES ("Кондор");' – Abhishek

+0

спасибо, но это не сработало - компилятор говорит литая является излишним, и я все еще получаю ошибка – Zeus

+2

Что за путаница? Массив 'double?' Не является массивом 'double' ... –

ответ

2

Cast Используйте, чтобы преобразовать его в два раза

Y = oCHART.GET_Y_SERIES("CONDOR").Cast<double>().ToArray(); 

Чтобы избежать значений null, используйте это преобразование.

Y = oCHART.GET_Y_SERIES("CONDOR").Where(d=>d.HasValue).Cast<double>().ToArray(); 

Рабочая example

+0

спасибо Хари, ваше решение работает – Zeus

+0

, это вызовет исключение, если оно будет равно нулю –

+0

. Я попробую ваше решение, спасибо за головы. – Zeus

0

Поскольку вы работаете с обнуляемого типа, вы должны получить фактическое значение «» из него можно сделать что-то вроде этого:..

var data = new List<double>(); 
foreach (var datum in oCHART.GET_Y_SERIES("CONDOR")) 
{ 
    if (datum.HasValue) 
    { 
     data.Add(datum.Value); 
    } 
} 

var y = data.ToArray(); 
+0

downvote? почему, о почему? –

+0

не пошло мной ни в коем случае – Zeus

Смежные вопросы