MonoTouch Linq to XML 如何内联 IF 语句

发布于 2024-10-15 15:40:21 字数 575 浏览 3 评论 0原文

您好,我有以下问题,是否可以进行内联 if 语句?

var contact= new XElement("Contact",
                                                new XAttribute("id", id.ToString()),
                                                new XElement("ContactData",
                                                             new XElement("Prefix", person.Prefix),
                                                             new XElement("FirstName", person.FirstName)
                                                );

因为有时 person.x 可能为 null 并且它给我带来了错误。

预先感谢您的任何帮助。

Hello I have the following question, is it possible to make an inline if statement?

var contact= new XElement("Contact",
                                                new XAttribute("id", id.ToString()),
                                                new XElement("ContactData",
                                                             new XElement("Prefix", person.Prefix),
                                                             new XElement("FirstName", person.FirstName)
                                                );

Because sometimes person.x could be null and its bringing me errors.

thanks in advance for any help.

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

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

发布评论

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

评论(3

难理解 2024-10-22 15:40:21

你可以尝试这样的

var contacts = new XElement("Contact",
        new XAttribute("id", id.ToString()),
        new XElement("ContactData",
            new XElement("Prefix", person.Prefix == null ? "" : person.Prefix),
            new XElement("FirstName", person.FirstName == null ? "" : person.FirstName));

语法是 (condition ? truevalue : falsevalue)

You could try something like this

var contacts = new XElement("Contact",
        new XAttribute("id", id.ToString()),
        new XElement("ContactData",
            new XElement("Prefix", person.Prefix == null ? "" : person.Prefix),
            new XElement("FirstName", person.FirstName == null ? "" : person.FirstName));

The syntax is (condition ? truevalue : falsevalue)

初见你 2024-10-22 15:40:21

如果 person.xnull,您希望发生什么?

如果您希望它使用默认值,您可以将 person.Prefix (例如)包装在一个接受字符串并返回字符串或一些可接受的默认值的方法中。

否则的话就是这样的:

string x = null;
string y = x ?? "f";

如果xnully就变成"f",否则它得到的值>x。

What is it you want to happen if person.x is null?

If you want it to default the value, you could wrap the person.Prefix (for example) in a method that takes the string and returns either the string or some acceptable default.

Otherwise there's this:

string x = null;
string y = x ?? "f";

y becomes "f" if x is null, otherwise it gets the value of x.

已下线请稍等 2024-10-22 15:40:21

如果您不这样做,则应使用 空合并运算符 作为默认值希望它们保持null

var contact = new XElement ("Contact",
    new XAttribute ("id", id.ToString ()),
    new XElement ("ContactData",
        new XElement("Prefix", person.Prefix ?? string.Empty),
        new XElement("FirstName", person.FirstName ?? string.Empty)
    )
);

You should use null-coalescing operator for default values if you don't want them to stay null:

var contact = new XElement ("Contact",
    new XAttribute ("id", id.ToString ()),
    new XElement ("ContactData",
        new XElement("Prefix", person.Prefix ?? string.Empty),
        new XElement("FirstName", person.FirstName ?? string.Empty)
    )
);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文