c# - 具有多个元素的 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));
解决方案
当您尝试迭代列表时,列表中的每个元素都是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)
));
推荐阅读
- unity3d - 为什么我不能像这样使用统一的 audioMixer?
- javascript - if 语句返回 true,但条件不会触发
- haskell - 在带有 Servant 的内部 Api 之前添加公共根路径
- excel - VBA损坏的复制粘贴循环
- powershell - 如何使用 Powershell 在 ActiveDirectory 中设置登录时间以拒绝登录
- javascript - javascript数组到键值空间分隔的字符串
- teradata - Teradata SQL 助手 - 自动导出
- sql - 存储两个节点之间所有可能的路由
- reactjs - 反应如何从状态中删除属性
- angular - RXJS - 过滤器似乎已过滤,但结果仍显示未过滤