...... LINQ的新手,可以提供一些帮助。
我正在查询一些远程xml并使用LINQ将结果放入List中。当xml查询只返回1条记录时,一切正常,我通过访问列表中的[0]项获得一个完全填充的“GetMPResult”对象。
...但是,如果xml中返回的记录超过1条,我会得到“使用new关键字创建对象实例”
任何想法?
XDocument myData = XDocument.Parse(e.Result);
List<GetMPResult> mp = (from mpItem in myData.Descendants("twfy")
select new GetMPResult
{
Member_id = mpItem.Element("member_id").Value,
House = mpItem.Element("house").Value,
First_name = mpItem.Element("first_name").Value,
Last_name = mpItem.Element("last_name").Value,
Constituency = mpItem.Element("constituency").Value,
Party = mpItem.Element("party").Value,
Entered_house = mpItem.Element("entered_house").Value,
Entered_reason = mpItem.Element("entered_reason").Value,
Left_house = mpItem.Element("left_house").Value,
Left_reason = mpItem.Element("left_reason").Value,
Person_id = mpItem.Element("person_id").Value,
Title = mpItem.Element("title").Value,
Lastupdate = mpItem.Element("lastupdate").Value,
Full_name = mpItem.Element("full_name").Value,
Url = mpItem.Element("url").Value,
Image = mpItem.Element("image").Value,
Image_height = mpItem.Element("image_height").Value,
Image_width = mpItem.Element("image_width").Value,
}).ToList<GetMPResult>();
GetMPCompleteEvent(mp[0]);
答案 0 :(得分:2)
这看起来与对象数量无关,因为它是来自NullReferenceException
的错误消息。
我认为即使你期待它,你正在处理的那些元素中只有一些元素是不存在的,所以你得到了空引用。
尝试在初始化列表(select new GetMPResult
)中注释所有属性设置器 - 如果它没有抛出,则表示您发现了问题。