LINQ to XML optional element query

前端 未结 3 1905
心在旅途
心在旅途 2020-12-15 22:46

I\'m working with an existing XML document which has a structure (in part) like so:


    
         Bob 
           


        
3条回答
  •  情话喂你
    2020-12-15 23:17

    XElement actually has interesting explicit conversion operators that do the right thing in this case.

    So, you rarely actually need to access the .Value property.

    This is all you need for your projection:

    var items =
        from g in xDocument.Root.Descendants("Group").Elements("Entry")
        select new
        {
            name = (string) g.Element("Name"),
            id = (string) g.Element("ID") ?? "none",
        };
    

    And if you'd prefer to use the value of ID as an integer in your anonymous type:

    var items =
        from g in xDocument.Root.Descendants("Group").Elements("Entry")
        select new
        {
            name = (string) g.Element("Name"),
            id = (int?) g.Element("ID"),
        };
    

提交回复
热议问题