Advertisement
fcamuso

Collezioni - Hashset

Nov 1st, 2021
1,222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.07 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Hash_Dictionary
  5. {
  6.   class Cliente : IEquatable<Cliente>, IComparable<Cliente>
  7.   {
  8.     public string Cognome { get; set; }
  9.     public int Eta { get; set; }
  10.     public Cliente(string cognome, int eta) { Cognome = cognome; Eta = eta; }
  11.  
  12.     public override int GetHashCode()
  13.     {
  14.       return Cognome.GetHashCode();
  15.     }
  16.  
  17.     public bool Equals(Cliente other)
  18.     {
  19.       return Cognome.Equals(other.Cognome);
  20.     }
  21.  
  22.     public int CompareTo(Cliente other)
  23.     {
  24.       return string.Compare(this.Cognome, other.Cognome);
  25.     }
  26.   }
  27.  
  28.     class Program
  29.     {
  30.     static void Main(string[] args)
  31.     {
  32.       HashSet<string>insieme = new HashSet<string>();
  33.  
  34.       insieme.Add("Giallo");
  35.       insieme.Add("Rosso");
  36.       //if (!insieme.Add("Giallo")) Console.WriteLine("Rifiutato");
  37.       //Console.WriteLine(insieme.Count);
  38.  
  39.       //foreach (string s in insieme) Console.WriteLine(s);
  40.  
  41.       HashSet<Cliente> clientiFilialeA = new HashSet<Cliente>();
  42.       clientiFilialeA.Add(new Cliente("Rossi", 34));
  43.       clientiFilialeA.Add(new Cliente("Verdi", 65));
  44.       clientiFilialeA.Add(new Cliente("Rosa", 65));
  45.  
  46.       if (!clientiFilialeA.Add(new Cliente("Rossi", 34))) Console.WriteLine("Cliente già presente");
  47.  
  48.  
  49.       HashSet<Cliente> clientiFilialeB = new HashSet<Cliente>();
  50.       clientiFilialeB.Add(new Cliente("Rossi", 34));
  51.       clientiFilialeB.Add(new Cliente("Verdi", 65));
  52.       clientiFilialeB.Add(new Cliente("Gialli", 65));
  53.  
  54.       //clientiFilialeB.IntersectWith(clientiFilialeA);
  55.       //clientiFilialeB.ExceptWith(clientiFilialeA);
  56.       //clientiFilialeB.UnionWith(clientiFilialeA);
  57.  
  58.       foreach (Cliente c in clientiFilialeB) Console.WriteLine(c.Cognome);
  59.  
  60.       SortedSet<Cliente> clientiOrdinati = new SortedSet<Cliente>();
  61.       clientiOrdinati.Add(new Cliente("Rossi", 34));
  62.       clientiOrdinati.Add(new Cliente("Verdi", 65));
  63.       clientiOrdinati.Add(new Cliente("Gialli", 65));
  64.       foreach (Cliente c in clientiOrdinati) Console.WriteLine(c.Cognome);
  65.     }
  66.   }
  67. }
  68.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement