/// <summary>
        /// Recherche tous les médias parus l'année passée en paramètre
        /// </summary>
        /// <param name="annee">Année de parution</param>
        /// <returns>Les médias qui correspondent</returns>
        public LesMedias RechercheAnnee(int annee)
        {
            LesMedias liste = new LesMedias(this.Medias.FindAll(delegate(Media m) {
                return(m.AnneeParution.Year == annee);
            }));

            return(liste);
        }
 /// <summary>
 /// Constructeur du singleton sans paramètres
 /// </summary>
 /// <param name="n">Nom de la mediathèque</param>
 /// <param name="a">Adresse de la mediathèque</param>
 /// <param name="c">Code Postal de la médiathèque</param>
 /// <param name="v">Ville de la médiathèque</param>
 /// <param name="m">Liste de médias contenus dans la médiathèque</param>
 /// <returns></returns>
 public static Mediatheque Instance(string n, string a, int c, string v, LesMedias m)
 {
     if (instance == null)
     {
         instance = new Mediatheque(n, a, c, v, m);
     }
     return(instance);
 }
 /// <summary>
 /// Constructeur par défaut
 /// </summary>
 private Mediatheque()
 {
     this.Nom        = "";
     this.Adresse    = "";
     this.CodePostal = 0;
     this.Ville      = "";
     this.Medias     = new LesMedias();
 }
 /// <summary>
 /// Constructeur de la classe
 /// </summary>
 /// <param name="n">Nom de la médiathèque</param>
 /// <param name="a">Adresse de la médiathèque</param>
 /// <param name="c">Code Postal de la médiathèque</param>
 /// <param name="v">Ville de la médiathèque</param>
 /// <param name="m">Médias stockés dans la médiathèque</param>
 private Mediatheque(string n, string a, int c, string v, LesMedias m)
 {
     this.Nom        = n;
     this.Adresse    = a;
     this.CodePostal = c;
     this.Ville      = v;
     this.Medias     = m;
 }
        /// <summary>
        /// Recherche tous les médias de la collection possédant le titre passé en paramètre
        /// </summary>
        /// <param name="titre">Titre des médias recherchés</param>
        /// <returns>Tous les médias qui correspondent</returns>
        public LesMedias RechercheTitre(string titre)
        {
            /*On utilise ici la méthode findAll de la collection List<T>
             * Celle-ci retourne une liste d'objets du type T pour lesquels l'expression
             * de la fonction delegate renvoie true. Le media 'm' est le média de la liste
             * en cours de traitement.*/
            LesMedias liste = new LesMedias(this.Medias.FindAll(delegate(Media m){
                return(m.Titre.ToLower().Contains(titre.ToLower()));
            }));

            return(liste);
        }
        /// <summary>
        /// Permet d'isoler les films parmi les médias de la collection
        /// </summary>
        /// <returns>Films contenus dans la collection courante</returns>
        public LesMedias RechercheFilms()
        {
            LesMedias liste = new LesMedias();

            foreach (Media m in this.Medias)
            {
                if (m is Film)
                {
                    liste.Ajout(m);
                }
            }

            return(liste);
        }
        /// <summary>
        /// Retourne tous les médias de la liste qui possèdent le genre g
        /// </summary>
        /// <param name="g">Genre recherché</param>
        /// <returns>Médias qui possèdent ce genre</returns>
        public LesMedias GetMediaGenre(Genres g)
        {
            LesMedias liste = new LesMedias();

            foreach (Media m in this.Medias)
            {
                if (m.Genre == g)
                {
                    liste.Ajout(m);
                }
            }

            return(liste);
        }