2015-03-19 5 views
-2

Сохраняет бросание, что не так в этой части моего кода, когда я хочу возвращать ячейки. Я получаю эту ошибку. Невозможно неявно преобразовать тип' System.Collections.Generic.List ' к «двойной»:Невозможно неявно преобразовать Список <double> 'to' double '

public double readFileToList(string Path) 
    { 

     var cells = new List<double>(); 
     string path = label3.Text; 

     if (File.Exists(path)) 
     { 
      double temp = 0; 
      cells.AddRange(File.ReadAllLines(path) 
       .Where(line => double.TryParse(line, out temp)) 
       .Select(l => temp) 
       .ToList()); 
      int totalCount = cells.Count(); 
      cellsNo.Text = totalCount.ToString(); 

     } 

     return cells; 

    } 
+0

Хорошо, да, как бы вы ожидали, что приведение на работу? Убедитесь, что ваш тип возврата и то, что вы на самом деле возвращаете, совпадают. Также убедитесь, что * использует * функцию, соответствующую типу. – BradleyDotNET

ответ

2

трудно сказать наверняка, не видя всю функцию, но мое предположение было бы, что у вас есть тип возвращаемого значения вашей функции набора в double вместо List<double>. Это приведет к ошибке, которую вы видите.


Редактировать

Подтверждено, глядя на ваши изменения, что это ваша проблема. Измените тип возврата вашей функции на List<double>, и вам будет хорошо! Ваш код должен выглядеть так:

public List<double> readFileToList(string Path) 
    { 

     var cells = new List<double>(); 
     string path = label3.Text; 

     if (File.Exists(path)) 
     { 
      double temp = 0; 
      cells.AddRange(File.ReadAllLines(path) 
       .Where(line => double.TryParse(line, out temp)) 
       .Select(l => temp) 
       .ToList()); 
      int totalCount = cells.Count(); 
      cellsNo.Text = totalCount.ToString(); 

     } 

     return cells; 

    } 
+0

, пожалуйста, взгляните на мое редактирование. как я могу это исправить –

+1

Хотя вы абсолютно правы, не зная контекста, его трудно до 100% заявить, что проблема связана с типом возврата (в отличие от возвращаемого). Учитывая имя метода, я бы согласился с вами, хотя :) – BradleyDotNET

+0

@ShawnL I change to return Список cells; но у меня появилось больше ошибок. Использование универсального типа «System.Collections.Generic.List » требует 1 аргумента типа \t и \t Недопустимый термин выражения 'double' –