xElement Linq创建列表
本文关键字:列表 创建 Linq xElement | 更新日期: 2023-09-27 18:19:08
我已经创建了一个新的类来从xml文件中读取数据,它看起来像:
public class Validations
{
public string id { get; set; }
public List<string> lhsList { get; set; }
public List<string> rhsList { get; set; }
}
XML
我想读的是:
<root>
<Validation id="val3">
<lhs id='Estimated' />
<lhs id='Newqurter' />
<rhs id='Current' />
<rhs id='FirstQuarter' />
</Validation>
.
.
.
</root>
我写的读取xml的代码是:
List<Validations> vList = new List<Validations>();
vList = (from XElement xele in xdoc.Root.Elements()
select new Validations
{
id = xele.Attribute("id").Value.ToString(),
// lhsList = ((xele.Elements().FirstOrDefault(p => p.Name == "lhs").FirstAttribute.Value
// rhsList = ((xele.Elements().FirstOrDefault(p => p.Name == "rhs").FirstAttribute.Value
}
).ToList<Validations>();
如何读取List<lhsList>
?I tried
lhsList = ((xele.Elements().FirstOrDefault(p => p.Name == "lhs").FirstAttribute.Value).ToList(),
但是它没有像预期的那样工作。还有其他的方法吗?
可以按如下方式创建lhs
元素列表:
List<string> lhsElements = xele.Elements("lhs")
.Select(el => el.Attribute("id").Value)
.ToList();
选择xele
的子lhs
元素,然后选择它们的'id'属性的值。我将把它留给你去解决如何将它与你的代码合并。