Exemple #1
0
        private int searchForBestFriendAfterAnalyzing(Dictionary <FacebookUser, int> i_FriendsHierarchy)
        {
            int bestFriendIndex = k_BestFriendNotFound;
            int index           = 0;
            int bestFriendcommonFriendsAmount = 0;

            foreach (FacebookUser friend in Friends)
            {
                if (i_FriendsHierarchy.ContainsKey(friend))
                {
                    DateTime friendBirthdayDate = new DateTime(DateTime.Now.Year, int.Parse(friend.Birthday.Substring(k_MonthIndex, k_MonthLength)), int.Parse(friend.Birthday.Substring(k_DayIndex, k_DayLength)));
                    if (ComparerMethod.Invoke(friendBirthdayDate))
                    {
                        if (i_FriendsHierarchy[friend] > bestFriendcommonFriendsAmount)
                        {
                            BestFriend = friend;
                            bestFriendcommonFriendsAmount = i_FriendsHierarchy[friend];
                            bestFriendIndex = index;
                        }
                        else if (i_FriendsHierarchy[friend] == bestFriendcommonFriendsAmount)
                        {
                            BestFriend = getEalierBirthdayFriend(friend, BestFriend);
                            if (BestFriend == friend)
                            {
                                bestFriendIndex = index;
                            }
                        }
                    }
                }

                index++;
            }

            return(bestFriendIndex);
        }
 /// <summary>
 /// Erstellt eine neue Instanz der <see cref="LambdaEqualityComparer{T}"/>-Klasse.
 /// </summary>
 /// <param name="comparer">Die zu verwendende Vergleichsmethode.</param>
 /// <param name="hasher">Die zu verwendende Methode zum ermitteln des Hashcodes.</param>
 public LambdaEqualityComparer(ComparerMethod <T> comparer, GetHashCodeMethod <T> hasher)
 {
     this.Comparer = comparer;
     this.Hasher   = hasher;
 }