using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class Temperature : IEquatable<Temperature>
{
    //Implémentation de IEquatable
    //paramètre <T> de type Temperature
    public bool Equals(Temperature other)
    {   // appel de méthode par défaut Equals des types par valeurs double.Equals
        double moyenneOther = (other.mesure1 + other.mesure2) / 2;
        double moyenne = (this.mesure1 + this.mesure2) / 2;
        return moyenne.Equals(moyenneOther);
    }

    // CHAMPS
    private double mesure1 = 0.0;
    private double mesure2 = 0.0;

    // CTOR
    public Temperature(double capteur1, double capteur2)
    {
        mesure1 = capteur1;
        mesure2 = capteur2;
    }
}

public class Example
{
    public static void Main()
    {
        var listeTemp = new List<Temperature>();

        listeTemp.Add(new Temperature(2017.15, 1000));
        listeTemp.Add(new Temperature(0, 100));
        listeTemp.Add(new Temperature(50, 50));

        var tempReference = new Temperature(25, 75);
        foreach (Temperature temperature in listeTemp)
            if (temperature.Equals(tempReference))
                Console.WriteLine("température moyenne égale");
            else
                Console.WriteLine("température moyenne différente");

        Console.ReadKey();

    }
}



