C#XML到LINQ具有相同名称的多个元素,如何让它们保存在同一个对象中
我有以下代码:C#XML到LINQ具有相同名称的多个元素,如何让它们保存在同一个对象中,c#,xml,linq,C#,Xml,Linq,我有以下代码: _logs.AddRange(elements .Select(log => new Log() { tid = (log.Element("tid") == null) ? "" : log.Element("tid").Value, zid = (log.Ele
_logs.AddRange(elements
.Select(log => new Log()
{
tid = (log.Element("tid") == null) ? "" : log.Element("tid").Value,
zid = (log.Element("zid") == null) ? "" : log.Element("zid").Value,
create = (log.Element("create") == null) ? "" : log.Element("create").Value,
data = (log.Element("data") == null) ? null : log.Elements("data")
.Select(x => new Data()
{
data = (log.Element("data") == null) ? "" : log.Element("data").Value
}).ToList()
}));
数据元素在每个对象中显示多次。为什么当它读取这些对象时,会显示x具有正确的数据,但当我查看_日志时,它只显示第一个值
例如,如果数据如下所示:
<data>1</data>
<data>2</data>
<data>3</data>
1
2.
3.
因此,数据列表将显示[0]=1,[1]=1,[2]=1
谢谢你的Select()
已关闭,你当前只需从头开始选择第一项的值,请执行以下操作:
.Select(x => new Data()
{
data = x.Value
}).ToList()
此外,您不需要初始的null
检查-如果没有数据元素,它将只是一个带有零项的枚举,因此这将起作用:
data = log.Elements("data").Select( x=> new Data() { data = x.Value }).ToList()
您的Select()
处于禁用状态,您当前只需选择第一项的值,而不是执行以下操作:
.Select(x => new Data()
{
data = x.Value
}).ToList()
此外,您不需要初始的null
检查-如果没有数据元素,它将只是一个带有零项的枚举,因此这将起作用:
data = log.Elements("data").Select( x=> new Data() { data = x.Value }).ToList()