【问题标题】:Display all values except the null reference object显示除空引用对象之外的所有值
【发布时间】:2017-08-11 16:30:29
【问题描述】:

我有一个从 XML 文件中提取数据的 foreach 循环,但是有些字段是空白的。当循环试图提取一个特定的值时,它有时会得到一个空引用异常。有没有办法挑选出具有空值的变量并将其设置为空字符串,同时以有效的方式显示所有其他值?为了这个例子,假设地址字段返回空值。

        XmlDocument xmldoc = new XmlDocument();
        xmldoc.Load(id);

        XmlNodeList person = xmldoc.SelectNodes("//parent/child");

        foreach (XmlNode node in person)
        {
            try
            {
                var name = node["name"].InnerText;
                var phone = node["phone"].InnerText;
                var email = node["email"].InnerText;
                var address = node["address"].InnerText;

                lblPopulate2.Text = name;
                lblPopulate7.Text = address;
                lblPopulate5.Text = phone;
                lblPopulate6.Text = email;
            }
            catch(NullReferenceException ex)
            {
                ???  
            }
            finally
            {
            }

【问题讨论】:

    标签: c# asp.net xml ado


    【解决方案1】:

    您可以使用null conditional operator,如果地址节点不存在则返回null,否则使用InnerText

    var address = node["address"]?.InnerText;
    

    然后是 null coalescing operator 用于设置您的 Text 属性:

    lblPopulate7.Text = address ?? string.Empty;
    

    【讨论】:

    • 一行可以工作lblPopulate7.Text = node["address"]?.InnerText ?? string.Empty;
    • 非常感谢我不得不使用 nuget 将我的 C# 语言从 5 升级到 6 才能正常工作:Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform
    猜你喜欢
    • 2018-12-18
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 2011-03-22
    • 2015-02-10
    • 1970-01-01
    • 2019-04-16
    • 2011-06-21
    相关资源
    最近更新 更多