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()