linq: Convert IEnumable в IEnumable с использованием вспомогательного метода

У меня есть IEnumerable , который я хочу преобразовать в IEnumerable . Проблема заключается в том, что приведенный ниже код вызывает исключение аргумента null для оператора select. Что я делаю не так?

Реальная проблема возникает, когда я пытаюсь перебирать возвращенные IEnumerable <строка>. Я получаю InvalidCastException. Я вижу в отладчик, который строки = {System.Linq.Enumerable.WhereSelectEnumerableIterator}

  private IEnumerable<string> ConvertToString(IEnumerable<double> doubles)
  {
     IEnumerable<string> strings = null;

     if (doubles != null)
        strings = doubles.Select(d => ConvertToString(d));

     return strings;
  }


  private string ConvertToString(double d)
  {
     return string.Format("{0:0.00}", d);
  }

Okay, I solved my problem. This Linq delayed execution makes debugging tricky. I actually have a call upstream causing the problem.

ICollection<float> floats; //pretend it holds valid data
ConvertToString(floats.Cast<double>()) //<---This is naughty
5
задан Osiris 16 November 2010 в 19:06
поделиться