/// <summary> /// 获取某个用户的所有联系人(组友,好友)。 /// 建议:由于该方法经常被调用,可将组友关系缓存在内存中,而非每次都遍历计算一遍。 /// </summary> public List <string> GetAllContacts(string userID) { List <string> contacts = new List <string>(); GGUser user = this.userCache.Get(userID); if (user == null) { return(contacts); } contacts = user.GetAllFriendList(); foreach (string groupID in user.GroupList) { GGGroup g = this.groupCache.Get(groupID); if (g != null) { foreach (string memberID in g.MemberList) { if (memberID != userID && !contacts.Contains(memberID)) { contacts.Add(memberID); } } } } return(contacts); }
/// <summary> /// 获取某个用户的好友列表。 /// </summary> public List <string> GetFriends(string userID) { GGUser user = this.userCache.Get(userID); if (user == null) { return(new List <string>()); } return(user.GetAllFriendList()); }