LINQ To XML错误:select子句中的表达式类型不正确.在对';选择';
本文关键字:类型 不正确 在对 选择 表达式 错误 XML To select 子句 LINQ | 更新日期: 2023-09-27 18:25:05
我正试图读取一个XML文件,但由于以下查询而导致type of the expression in the select clause is incorrect. Type inference failed in the call to 'Select'
错误:
List<Data> dogs = (from q in doc.Descendants("dog")
where (string)q.Attribute("name") == dogName
select new Data
{
name = q.Attribute("name").Value,
breed = q.Element("breed").Value,
sex = q.Element("sex").Value
}.ToList<Data>);
数据类别:
public class Data
{
public string name { get; set; }
public string breed { get; set; }
public string sex { get; set; }
public List<string> dogs { get; set; }
}
问题出在右括号上——当你想把它放在对象初始值设定项的末尾时,它出现在ToList()
调用的末尾。此外,您实际上并不是在调用方法——您只是在指定一个方法组。最后,您可以让类型推理为您计算出类型参数:
List<Data> dogs = (from q in doc.Descendants("dog")
where (string)q.Attribute("name") == dogName
select new Data
{
name = q.Attribute("name").Value,
breed = q.Element("breed").Value,
sex = q.Element("sex").Value
}).ToList();