Beispiel #1
0
    public static int Compare <T>(this Matchable <T> m, T candidate1, T candidate2)
    {
        if (candidate1 == null)
        {
            return(1);
        }
        if (candidate2 == null)
        {
            return(-1);
        }
        var score1 = m.GetScore(candidate1);
        var score2 = m.GetScore(candidate2);

        if (score1 < score2)
        {
            return(-1);
        }
        else if (score1 > score2)
        {
            return(1);
        }
        else
        {
            return(0);
        }
    }
Beispiel #2
0
    public static T getFavorite <T>(this Matchable <T> m, List <T> matchees)
    {
        T   favorite  = matchees.First();
        var bestScore = Single.PositiveInfinity;

        foreach (var candidate in matchees)
        {
            var score = m.GetScore(candidate);
            if (score < bestScore)
            {
                favorite  = candidate;
                bestScore = score;
            }
        }
        return(favorite);
    }