从对象列表创建 XML 文档时检查 Null

发布于 2024-10-20 09:44:05 字数 618 浏览 2 评论 0原文

我想从对象列表创建一个 XML 文档。如何处理转换中的 Null。

  XElement xml = new XElement("people",
                            from p in PPL
                            select new XElement("person",
                                        new XElement("id", p.ID),
                                        new XElement("firstname", p.FirstName),
                                        new XElement("lastname", p.LastName),
                                        new XElement("idrole", p.IDRole)));

如上面的示例所示,如果 PPL 为空,那么我的 xml 应该只有 <\people>现在我收到 NUllreferenc 错误。

提前致谢 BB

I want to create an XML document from object list. How to handle Null in the transform.

  XElement xml = new XElement("people",
                            from p in PPL
                            select new XElement("person",
                                        new XElement("id", p.ID),
                                        new XElement("firstname", p.FirstName),
                                        new XElement("lastname", p.LastName),
                                        new XElement("idrole", p.IDRole)));

As shown in the above example if the PPL is null then my xml should have just <\people> Now I am getting NUllreferenc error.

Thanks in advance
BB

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

友欢 2024-10-27 09:44:06

一种选择是使用空合并运算符:

from p in PPL ?? Enumerable.Empty<Person>()

如果您需要对匿名类型的集合执行此操作,您可以创建一个扩展方法:

public static IEnumerable<TSource> EmptyIfNull<TSource>
    (this IEnumerable<TSource> source)
{
    return source ?? Enumerable.Empty<TSource>();
}

然后您的查询可以使用

from p in PPL.EmptyIfNull()

One option is to use the null coalescing operator:

from p in PPL ?? Enumerable.Empty<Person>()

If you need to do this for a collection of an anonymous type, you could create an extension method:

public static IEnumerable<TSource> EmptyIfNull<TSource>
    (this IEnumerable<TSource> source)
{
    return source ?? Enumerable.Empty<TSource>();
}

then your query could use

from p in PPL.EmptyIfNull()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文