我正在尝试建立一个Facebook应用程序,我可以管理我的朋友。现在我正在进行某种高级搜索。我使用FQL和LINQ to XML来适应我的搜索。
但我希望我的搜索方法可以重复使用。所以我可以组合多个过滤器。
这是我的想法:
private var friends;
public setFriends(XDocument doc)
{
friends = (from usr in doc.Descendants("user")
select new User
{
name = usr.Element("name").Value,
email = usr.Element("email").Value,
pic = usr.Element("pic_square").Value,
city = usr.Element("city").Value,
});
return friends;
}
public void filterFriendsByName()
{
friends = // some code to filter my previous results by name
}
public void filterFriendsByCity()
{
friends = // some code to filter friends by city
}
//more filters
正如您所看到的,我仍然缺少一些代码。我不知道我是否还可以从这里修改我的查询。我希望你能告诉我怎么做到这一点。或者指出我正确的方向,使这成为可能。
谢谢!
答案 0 :(得分:4)
您的代码非常混乱,无法编译。但是当你清理它并纠正错误时,你会发现friends
变量将获得类型IEnumerable<User>
。之后,您可以继续过滤filterFriendsByName方法,就像这样。
public void filterFriendsByName(string name)
{
return friends.Where(x=> x.name == name);
}
friends
不会被更改,但上面的方法将返回已过滤的Friends By Name。同样适用于城市