未将对象引用设置到对象的实例IEnumerable<TimeSeriesData> myTimeSeries =
from item in xmlDoc.Descendants("TimeSeries")
select new TimeSeriesData()
{
open = Convert.ToDouble(item.Element("Open").Value),
close = Convert.ToDouble(item.Element("Close").Value)
};
编译没问题,运行时报错
用户代码未处理 System.NullReferenceException
Message=未将对象引用设置到对象的实例。
StackTrace:
位于 SbsCh10_1.MainPage.<wc_OpenReadCompleted>b__1(XElement item)
位于 System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
位于 System.Windows.Controls.ItemCollection.EnumerableCollectionView.InitializeSnapshot()
位于 System.Windows.Controls.ItemCollection.UpdateItemsSourceList(IEnumerable newItemsSource)
位于 System.Windows.Controls.ItemsControl.ItemsSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
位于 System.Windows.DependencyObject.RaisePropertyChangeNotifications(DependencyProperty dp, Object oldValue, Object newValue)
位于 System.Windows.DependencyObject.UpdateEffectiveValue(DependencyProperty property, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, ValueOperation operation)
位于 System.Windows.DependencyObject.SetValueInternal(DependencyProperty dp, Object value, Boolean allowReadOnlySet)
位于 System.Windows.Controls.ItemsControl.set_ItemsSource(IEnumerable value)
位于 SbsCh10_1.MainPage.wc_OpenReadCompleted(Object sender, OpenReadCompletedEventArgs e)
位于 System.Net.WebClient.OnOpenReadCompleted(OpenReadCompletedEventArgs e)
位于 System.Net.WebClient.OpenReadOperationCompleted(Object arg)
InnerException:
------最佳解决方案--------------------你确认item.Element("Open").这些东西都存在,调试一下不就都清楚了吗
------其他解决方案--------------------系统已经告诉你,是未将对象引用设置到对象的实例.
"open = Convert.ToDouble(item.Element("Open").Value),
close = Convert.ToDouble(item.Element("Close").Value)
"
你调试下,看他们为什么没有值,不就解决了么?
------其他解决方案--------------------在这里怎么去判断item.Element("Open").Value时候有值呢?
------其他解决方案--------------------有一个item的数据为
<TimeSeries>
<Date />
</TimeSeries>
怎么增加判断?
------其他解决方案--------------------解决了
增加
where item.Element("Date").Value!=""