MonoTouch Linq to XML如何使IF语句内联

时间:2011-02-04 15:33:19

标签: c# linq linq-to-xml xamarin.ios

您好我有以下问题,是否可以制作内联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并且它会给我带来错误。

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:5)

你可以试试这样的事情

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)

答案 1 :(得分:0)

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

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

否则就是这样:

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

x会变为null,否则会获得x的值。

答案 2 :(得分:0)

如果您不希望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) ) ); ,则应使用null-coalescing operator作为默认值:

{{1}}