首页 > 解决方案 > 具有多个元素的 LINQ to XML

问题描述

我正在玩一些 LINQ to XML,但我无法让我的查询按我想要的方式工作。我可以让单个元素像 firstName 一样工作,但是当我添加另一个元素时,我在 VS 中看到红色下划线,告诉我缺少对象引用。我假设这是一个语法问题。我对 LINQ 还很陌生,很抱歉这个愚蠢的问题。我一直无法找到涵盖我的场景的示例。任何指导将不胜感激。

        Member MyMember = new Member();
        MyMember.fName = "Willy";
        MyMember.lName = "Wonka";
        MyMember.Address1 = "333 Chocolate Avenue";
        MyMember.City = "Candytown";
        MyMember.State = "North Carolina";
        MyMember.Zip = "05684";


        List<Member> mlist = new List<Member>();
        mlist.Add(MyMember);


        XElement customersElement = new XElement("primaryNames",
                                                  from Member in mlist
                                                  select new XElement("firstName", Member.fName),
                                                         new XElement("last", Member.lName),
                                                         new XElement("address", Member.Address1),
                                                         new XElement("city", Member.City),
                                                         new XElement("state", Member.State),
                                                         new XElement("zip", Member.Zip));

标签: c#asp.netlinq

解决方案


当您尝试迭代列表时,列表中的每个元素都是primaryNames. primaryName因此,如下所述创建另一个子元素。

    XElement customersElement = new XElement("primaryNames",
                                          from mem in mlist
                                          select new XElement("primaryName",
                                                    new XElement("firstName", mem.fname),
                                                    new XElement("last", mem.lname),
                                                    new XElement("city", mem.city),
                                                    new XElement("state", mem.state)
                                                    ));

推荐阅读