【发布时间】:2010-07-07 03:03:28
【问题描述】:
我有以下方法应该从 XML 响应中解析信息并返回用户集合。
我选择创建一个 Friend 类并将 List<Friend> 返回给调用方法。
这是我目前所拥有的,但我注意到 ids.ToList().Count 方法将每个 id 元素解析为一个列表,然后在 for 条件中再次执行此操作。实在是太没用了。
public List<Friend> FindFriends()
{
List<Friend> friendList = new List<Friend>();
var friends = doc.Element("ipb").Element("profile").Element("friends").Elements("user");
var ids = from fr in friends
select fr.Element("id").Value;
var names = from fr in friends
select fr.Element("name").Value;
var urls = from fr in friends
select fr.Element("url").Value;
var photos = from fr in friends
select fr.Element("photo").Value;
if (ids.ToList().Count > 0)
{
for (int i = 0; i < ids.ToList().Count; i++)
{
Friend buddy = new Friend();
buddy.ID = ids.ToList()[i];
buddy.Name = names.ToList()[i];
buddy.URL = urls.ToList()[i];
buddy.Photo = photos.ToList()[i];
friendList.Add(buddy);
}
}
return friendList;
}
【问题讨论】:
标签: c# .net linq linq-to-xml