本文介绍了如何克服where子句XML LINQ中的空错误异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨朋友们,

我正在尝试过滤节点并将值存储在基于搜索条件的列表中。我的问题是,在某些节​​点中缺少where子句应用字段(AccruedInterest)。我如何克服这个问题,请帮助

Hi Friends,
i am trying to filter the nodes and store values in a List basesd on the search criteria. My problem is, in some nodes the where clause applied field(AccruedInterest) is missing. How can i overcome this, please help

public static List<AccruedClass> validaccrued()
        {
            XDocument doc = XDocument.Load("Morgan.xml");
            var ac = doc.Root.Elements("Positions")
                          .Where(item => (float)item.Element("AccruedInterest") > 0.0)//some nodes doesnot contain "AccruedInterest" so its showing null error execption
                          .Select(item => new AccruedClass
                          {
                              Cusip = item.Element("Cusip").Value != null ? item.Element("Cusip").Value : "",
                              // Symbol = item.Element("symbol").Value,
                              AccruedInterest = item.Element("AccruedInterest").Value != null ? Convert.ToDouble(item.Element("AccruedInterest").Value) : 0,
                              PriceFactor = item.Element("PriceFactor").Value != null ? Convert.ToDouble(item.Element("PriceFactor").Value) : 0,
                              Quantity = item.Element("Quantity").Value != null ? Convert.ToDouble(item.Element("Quantity").Value) : 0,
                          })
                          .ToList();
            List<AccruedClass> list_accr = ac.ToList<AccruedClass>();
            return list_accr;
        }

推荐答案

...
.Where(item => (float?)item.Element("AccruedInterest") != null && (float?)item.Element("AccruedInterest") > 0.0)
...


这篇关于如何克服where子句XML LINQ中的空错误异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-14 16:48