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; }