fork download
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. class ProgrammingLanguagesHashSet
  5. {
  6. static void Main()
  7. {
  8. Console.WriteLine("Programming Languages HashSet Demo:");
  9. Console.WriteLine("===================================");
  10.  
  11. // Create HashSets for different programming paradigms
  12. HashSet<string> webLanguages = new HashSet<string>();
  13. HashSet<string> systemLanguages = new HashSet<string>();
  14.  
  15. // Add web development languages
  16. webLanguages.Add("JavaScript");
  17. webLanguages.Add("TypeScript");
  18. webLanguages.Add("PHP");
  19. webLanguages.Add("Python");
  20. webLanguages.Add("Ruby");
  21. webLanguages.Add("JavaScript"); // Try to add duplicate - will be ignored
  22.  
  23. Console.WriteLine("Web Development Languages:");
  24. Console.Write("webLanguages contains {0} elements: ", webLanguages.Count);
  25. DisplayHashSet(webLanguages);
  26.  
  27. // Add system programming languages
  28. systemLanguages.Add("C");
  29. systemLanguages.Add("C++");
  30. systemLanguages.Add("Rust");
  31. systemLanguages.Add("Go");
  32. systemLanguages.Add("Python"); // Python appears in both sets
  33.  
  34. Console.WriteLine("System Programming Languages:");
  35. Console.Write("systemLanguages contains {0} elements: ", systemLanguages.Count);
  36. DisplayHashSet(systemLanguages);
  37.  
  38. // Test adding duplicate
  39. bool wasAdded = webLanguages.Add("PHP");
  40. Console.WriteLine("\nTrying to add PHP again to webLanguages: " + wasAdded);
  41.  
  42. // Create a union of both sets
  43. HashSet<string> allLanguages = new HashSet<string>(webLanguages);
  44. Console.WriteLine("\nCreating union of web and system languages...");
  45. allLanguages.UnionWith(systemLanguages);
  46.  
  47. Console.Write("allLanguages (union) contains {0} elements: ", allLanguages.Count);
  48. DisplayHashSet(allLanguages);
  49.  
  50. // Find intersection (languages common to both sets)
  51. HashSet<string> commonLanguages = new HashSet<string>(webLanguages);
  52. commonLanguages.IntersectWith(systemLanguages);
  53.  
  54. Console.Write("\nCommon languages (intersection) contains {0} elements: ", commonLanguages.Count);
  55. DisplayHashSet(commonLanguages);
  56.  
  57. // Find languages only in web development (difference)
  58. HashSet<string> webOnlyLanguages = new HashSet<string>(webLanguages);
  59. webOnlyLanguages.ExceptWith(systemLanguages);
  60.  
  61. Console.Write("\nWeb-only languages (difference) contains {0} elements: ", webOnlyLanguages.Count);
  62. DisplayHashSet(webOnlyLanguages);
  63.  
  64. // Test subset relationship
  65. HashSet<string> scriptingLanguages = new HashSet<string> {"JavaScript", "Python"};
  66. Console.WriteLine("\nIs scriptingLanguages a subset of webLanguages? " +
  67. scriptingLanguages.IsSubsetOf(webLanguages));
  68. }
  69.  
  70. private static void DisplayHashSet(HashSet<string> set)
  71. {
  72. Console.Write("{ ");
  73. foreach (string language in set)
  74. {
  75. Console.Write(language + " ");
  76. }
  77. Console.WriteLine("}");
  78. }
  79. }
Success #stdin #stdout 0.06s 26948KB
stdin
Standard input is empty
stdout
Programming Languages HashSet Demo:
===================================
Web Development Languages:
webLanguages contains 5 elements: { JavaScript TypeScript PHP Python Ruby }
System Programming Languages:
systemLanguages contains 5 elements: { C C++ Rust Go Python }

Trying to add PHP again to webLanguages: False

Creating union of web and system languages...
allLanguages (union) contains 9 elements: { JavaScript TypeScript PHP Python Ruby C C++ Rust Go }

Common languages (intersection) contains 1 elements: { Python }

Web-only languages (difference) contains 4 elements: { JavaScript TypeScript PHP Ruby }

Is scriptingLanguages a subset of webLanguages? True