У меня есть 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