Exemple #1
0
 /// <summary>
 /// Retourne les noms de la liste de licorne
 /// </summary>
 /// <returns></returns>
 public IEnumerable <string> GetNomLicorne()
 {
     // Version méthode d'extension
     return(ListeLicorne.Select(l => l.Name));
     // Version déclarative
     //return from licorne in ListeLicorne
     //       select licorne.Name;
 }
Exemple #2
0
 /// <summary>
 /// Retourner la liste des licornes triees par age puis en cas d'égalité par nom
 /// </summary>
 /// <returns></returns>
 public IEnumerable <Licorne> LicorneLesPlusJeuneDabordPuisParOrdreAlphabetiqueDuNom()
 {
     // Version méthode d'extension
     return(ListeLicorne.OrderBy(l => l.Age).ThenBy(l => l.Name));
     // Version déclarative
     //return from licorne in ListeLicorne
     //       orderby licorne.Age, licorne.Name
     //       select licorne;
 }
Exemple #3
0
 /// <summary>
 /// Retourner la liste des licornes triees par age
 /// </summary>
 /// <returns></returns>
 public IEnumerable <Licorne> LicorneLesPlusJeuneDabord()
 {
     // Version méthode d'extension
     return(ListeLicorne.OrderBy(l => l.Age));
     // Version déclarative
     //return from licorne in ListeLicorne
     //       orderby licorne.Age
     //       select licorne;
 }
Exemple #4
0
 /// <summary>
 /// Retourner un dictionnaire qui associe à chaque age la ou les licornes associées
 /// </summary>
 /// <returns></returns>
 public Dictionary <int, List <Licorne> > QuelleLicorneAMonAge()
 {
     // Version méthode d'extension
     return(ListeLicorne.GroupBy(l => l.Age).ToDictionary(iGroupLicorne => iGroupLicorne.Key, iGroupLicorne => iGroupLicorne.ToList()));
     // Version déclarative
     //return (from licorne in ListeLicorne
     //        group licorne by licorne.Age into newGroup
     //        select newGroup).ToDictionary(x => x.Key, x => x.ToList());
 }
Exemple #5
0
 /// <summary>
 /// Retourner le nombre de licorne pour chaque age
 /// </summary>
 /// <returns></returns>
 public IEnumerable <Tuple <int, int> > PyramideDesAgesDesLicornes()
 {
     // Version méthode d'extension
     return(ListeLicorne.GroupBy(l => l.Age, (age, listeLicornes) => new Tuple <int, int>(age, listeLicornes.Count())));
     // Version déclarative
     //return from licorne in ListeLicorne
     //       group licorne by licorne.Age into newGroup
     //       select new Tuple<int, int>(newGroup.Key, newGroup.Count());
 }
Exemple #6
0
 /// <summary>
 /// Retourner la liste des licornes qui ont 10 ans
 /// </summary>
 /// <returns></returns>
 public IEnumerable <Licorne> CeuxQuiOnt10ansLevezLaMain()
 {
     // Version méthode d'extension
     return(ListeLicorne.Where(l => l.Age == 10));
     // Version déclarative
     //return from licorne in ListeLicorne
     //       where licorne.Age == 10
     //       select licorne;
 }
Exemple #7
0
        /// <summary>
        /// Retourner pour chaque licorne sa liste de jouet
        /// </summary>
        /// <returns></returns>
        public IEnumerable <Tuple <Licorne, List <Jouet> > > AChacunSonJouet()
        {
            // Version méthode d'extension
            // 1ère solution
            return(ListeLicorne.GroupJoin(ListeJouet, l => l.Name, j => j.NomProprietaire, (licorne, myJoinListJouet) => new Tuple <Licorne, List <Jouet> >(licorne, myJoinListJouet.ToList())));
            // 2ème solution
            //return ListeLicorne.Select(l => new Tuple<Licorne, List<Jouet>>(l, ListeJouet.Where(j => j.NomProprietaire == l.Name).ToList()));

            // Version déclarative
            //return from licorne in ListeLicorne
            //       join jouet in ListeJouet on licorne.Name equals jouet.NomProprietaire into jouetsDeLaLicorne
            //       select new Tuple<Licorne, List<Jouet>>(licorne, jouetsDeLaLicorne.ToList());
        }
Exemple #8
0
 /// <summary>
 /// Transformer la liste de licorne en liste d'animaux
 /// </summary>
 /// <returns></returns>
 public IEnumerable <Animal> LesLicornesSontDesAnimaux()
 {
     // Version méthode d'extension
     return(ListeLicorne.Cast <Animal>());
     // Pas de version déclarative...
 }
Exemple #9
0
 /// <summary>
 /// Les 3 premières licornes ont des bébés avec les 3 suivantes
 /// Et leur enfant a la couleur accolée des deux
 /// Exemple Licorne1 ("Bleu") a un enfant avec Licorne4 ("Rose")
 /// L'enfant doit être de couleur "BleuRose"
 /// </summary>
 /// <remarks>On peut utiliser la méthode Licorne.FaireUnBebe</remarks>
 public IEnumerable <Licorne> DesBebesLicornes()
 {
     // Version méthode d'extension
     return(ListeLicorne.Take(3).Zip(ListeLicorne.Skip(3), (l1, l2) => Licorne.FaireUnBebe(l1, l2)));
     // Pas de version déclarative...
 }
Exemple #10
0
 /// <summary>
 /// Créer une licorne qui a la couleur de toutes concatennées ainsi que l'ensemble de leurs personnalités
 /// </summary>
 ///  <remarks>On peut utiliser la méthode Licorne.Fusion</remarks>
 /// <returns></returns>
 public Licorne MegaLicorne()
 {
     // Version méthode d'extension
     return(ListeLicorne.Aggregate((l1, l2) => Licorne.Fusiiioooon(l1, l2)));
     // Pas de version déclarative...
 }
Exemple #11
0
 /// <summary>
 /// Retourner un lookup qui associe à chaque age la ou les licornes associées
 /// </summary>
 /// <returns></returns>
 public ILookup <int, Licorne> QuelleLicorneAMonAgeLookup()
 {
     // Version méthode d'extension
     return(ListeLicorne.ToLookup(l => l.Age));
     // Pas de version déclarative...
 }
Exemple #12
0
 /// <summary>
 /// Retourner la liste de l'ensemble des caratères (personnalitées) de licorne
 /// </summary>
 /// <returns></returns>
 public IEnumerable <string> LesLicornesOntDuCaractere()
 {
     // Version méthode d'extension
     return(ListeLicorne.SelectMany(l => l.ListePersonnalites));
     // Pas de version déclarative...
 }