fcamuso

Collezioni, classe Array seconda parte

Sep 28th, 2021
664
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2.  
  3. namespace Collezioni_B_Array
  4. {
  5.   class Cliente: IComparable
  6.   {
  7.     public string Cognome { get; set; }
  8.     public int Eta { get; set; }
  9.     public Cliente(string cognome, int eta) { Cognome = cognome; Eta = eta; }
  10.  
  11.     public override bool Equals(Object obj)
  12.     {
  13.       Cliente c = obj as Cliente;
  14.       return c.Cognome == this.Cognome;
  15.     }
  16.  
  17.     public int CompareTo(object obj)
  18.     {
  19.       return Eta.CompareTo((obj as Cliente).Eta);
  20.  
  21.       //if (Cognome[3] < (obj as Cliente).Cognome[3] )
  22.       //  return -1;
  23.       //else
  24.       //if (Cognome[3] == (obj as Cliente).Cognome[3])
  25.       //  return 0;
  26.       //else
  27.       //  return 1;
  28.     }
  29.   }
  30.  
  31.   class Program
  32.   {
  33.     static void Main(string[] args)
  34.     {
  35.       string[] elenco = { }; // { "Verdi", "Rossi", "Oboli", "Bianchi", "Sella", "Zanna", "Oboli", "Crespella", "Anione"};
  36.      
  37.       //Console.WriteLine(Array.IndexOf(elenco, "Oboli"));
  38.      
  39.       //int ultimaPosizione = -1;
  40.       //do
  41.       //{
  42.       //  ultimaPosizione = Array.IndexOf(elenco, "Oboli", ultimaPosizione +1);
  43.       //  if (ultimaPosizione != -1) Console.WriteLine(ultimaPosizione);
  44.       //} while (ultimaPosizione != -1);
  45.  
  46.       //Console.WriteLine(Array.IndexOf(elenco, "Oboli", 3, 3)); //non trovato
  47.       //Console.WriteLine(Array.IndexOf(elenco, "Oboli", 3, 4)); //trovato
  48.  
  49.       //Console.WriteLine(Array.IndexOf<String>(elenco, 123));
  50.       //Console.WriteLine(Array.IndexOf(elenco, 123));
  51.  
  52.       //Console.WriteLine(Array.LastIndexOf(elenco, "Oboli"));
  53.  
  54.  
  55.       Cliente[] clienti = {
  56.         new ("Verdi", 45) , new ("Rossi", 19) , new ("Oboli", 35) , new ("Bianchi", 43) ,
  57.         new ("Sella", 15) , new ("Zanna", 71) , new ("Oboli", 23) , new ("Crespella", 61) ,
  58.         new ("Anione", 33) };
  59.  
  60.       //Cliente c1 = new("Zanna", 71);
  61.       //Console.WriteLine(Array.IndexOf(clienti, c1));
  62.       var clienteTrovato = Array.Find(clienti, x => x.Cognome == "Oboli");
  63.       Console.WriteLine(clienteTrovato.Eta);
  64.  
  65.       clienteTrovato = Array.FindLast(clienti, x => x.Eta < 20);
  66.       Console.WriteLine(clienteTrovato.Cognome);
  67.  
  68.       var risultati = Array.FindAll(clienti, x => x.Eta >=18);
  69.       Console.WriteLine(risultati.Length);
  70.  
  71.       int pos = Array.FindIndex(clienti, x => x.Eta >= 40);
  72.       Console.WriteLine(pos);
  73.  
  74.       pos = Array.FindLastIndex(clienti, x => x.Eta >= 40);
  75.       Console.WriteLine(pos);
  76.  
  77.       risultati = Array.FindAll(clienti, x => x.Eta < 40);
  78.       Console.WriteLine(risultati.Length);
  79.  
  80.       if (Array.TrueForAll(clienti, x => x.Eta % 2 != 0))
  81.         Console.WriteLine("Età tutte dispari");
  82.  
  83.       if (Array.Exists(clienti, x => x.Eta % 2 == 0))
  84.         Console.WriteLine("Almeno un pari c'è");
  85.       else
  86.         Console.WriteLine("Nessuna età pari ...");
  87.  
  88.       Array.Sort(clienti);
  89.       foreach (Cliente c in clienti) Console.WriteLine($"{c.Cognome} - {c.Eta}");
  90.  
  91.       pos = Array.BinarySearch(clienti, new Cliente("XXXoYYYYY", 34));
  92.       if (pos > -1) Console.WriteLine(clienti[pos].Cognome);
  93.  
  94.       Console.WriteLine(new string('-', 40));
  95.       Array.Reverse(clienti);
  96.       foreach (Cliente c in clienti) Console.WriteLine($"{c.Cognome} - {c.Eta}");
  97.     }
  98.   }
  99. }
  100.  
RAW Paste Data