kullanarak IEnumable
Sorun, aşağıdaki kod, select ifadesinde bir argüman boş istisnası atar. Neyi yanlış yapıyorum? Ben IEnumerable < döndürülen dize > yinelemenize çalıştıklarında
gerçek sorun
oluşur. InvalidCastException alıyorum. Ben dizeleri = {System.Linq.Enumerable.WhereSelectEnumerableIterator < çift, dize >}
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);
}
Tamam, benim sorun çözüldü debuger görüyoruz. Bu Linq gecikmeli yürütme, hata ayıklamayı zorlaştırır. Ben aslında sorun neden yukarı doğru bir çağrı var.
ICollection<float> floats; //pretend it holds valid data
ConvertToString(floats.Cast<double>()) //<---This is naughty
kodu olarak-herhangi ArgumentNullException atmak gerekir. 'd 'boş olamaz, çünkü bu bir değer türüdür; ve 'çiftler' boş olamaz, çünkü bunu kontrol edersiniz. Sorunu gösteren kısa ama eksiksiz bir program ekleyebilir misiniz? – dtb