Mathematik – Symmetrische Differenz
Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy. Lektion 65 von 66.
Die symmetrische Differenz zweier Mengen enthält Elemente, die in einer der Mengen, aber nicht in ihrer Schnittmenge sind (Elemente, die genau in einer der Mengen vorkommen).
Erstelle zwei HashSet-Objekte:
HashSet<int> set1 = new HashSet<int>() { 1, 2, 3, 4 };
HashSet<int> set2 = new HashSet<int>() { 3, 4, 5, 6 };Erstelle ein neues HashSet für das Ergebnis:
HashSet<int> symmetricDifference = new HashSet<int>(set1);Verwende die Methode SymmetricExceptWith, um die symmetrische Differenz zu berechnen:
symmetricDifference.SymmetricExceptWith(set2);Nach der Ausführung des obigen Codes enthält das symmetricDifference-Set:
{ 1, 2, 5, 6 }Die Elemente 3 und 4 sind in beiden Mengen, daher erscheinen sie nicht in der symmetrischen Differenz.
Aufgabe
EinfachErstellen Sie eine Methode mit dem Namen FindSymmetricDifference, die zwei Argumente annimmt:
- Ein
HashSetvon Ganzzahlen (set1) - Ein
HashSetvon Ganzzahlen (set2)
Die Methode sollte ein neues HashSet<int> zurückgeben, das die symmetrische Differenz der beiden Mengen enthält. Der Rest des Programms (Eingabe lesen, Sortieren und Ausgeben der Ergebnisse) ist bereits für Sie bereitgestellt.
Probier es selbst
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
public static HashSet<int> FindSymmetricDifference(HashSet<int> set1, HashSet<int> set2)
{
// Schreibe deinen Code hier
}
static void Main(string[] args)
{
string[] input1 = Console.ReadLine().Split(',');
string[] input2 = Console.ReadLine().Split(',');
HashSet<int> set1 = new HashSet<int>();
HashSet<int> set2 = new HashSet<int>();
foreach (string s in input1)
{
if (int.TryParse(s.Trim(), out int num))
{
set1.Add(num);
}
}
foreach (string s in input2)
{
if (int.TryParse(s.Trim(), out int num))
{
set2.Add(num);
}
}
HashSet<int> result = FindSymmetricDifference(set1, set2);
// Drucke das Ergebnis in aufsteigender Reihenfolge
int[] orderedResult = result.OrderBy(x => x).ToArray();
foreach (int num in orderedResult)
{
Console.WriteLine(num);
}
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Mehrdimensionale Arrays
Grundlagen 2D-Arrays2D-Arrays deklarieren und initialisierenAuf Elemente von 2D-Arrays zugreifenVerschachtelte Schleifen mit 2D-ArraysGezackte ArraysHäufige MatrixoperationenZusammenfassung – Mehrdimensionale Arrays4Techniken zur Ablaufsteuerung
Frühe RückgabenWächterklauselnSprunganweisungen (goto)Break und ContinueVerschachtelte Bedingungen abflachen7Logische Operatoren – Fortgeschritten
KurzschlussauswertungBedingte logische OperatorenOperatorrangfolgeRückblick – Erweiterte Operatoren2Fortgeschrittene Entscheidungslogik
Mehrere BedingungenKomplexe boolesche LogikVergleich: If vs. SwitchVerschachtelte Switch-AnweisungenRückblick – Fortgeschrittene Entscheidungen5Fehlerbehandlung mit Exceptions
Grundlagen von Try-CatchException-TypenMehrere Catch-BlöckeArbeiten mit DateienFinally-BlockUsing im Vergleich zu Try-FinallyBenutzerdefinierte ExceptionsZusammenfassung – Fehlerbehandlung3Schleifenverbesserungen
SchleifenleistungKomplexe IterationJeder SchleifentypSchleifen refaktorierenRückblick – Optimierte Schleifen6Behandlung von Nullwerten
Grundlagen von NullreferenzenNullable WerttypenMuster zur NullprüfungDefensive ProgrammierungZusammenfassung – Nullsicherheit9HashMap Teil 1
Was ist eine HashMap?Eine HashMap deklarierenPrüfen, ob ein Schlüssel vorhanden istAuf Werte zugreifenDictionaries ändernZusammenfassung – HashMap12HashSet Teil 2
Mathematik – Vereinigung von HashSetsMathematik – Schnittmenge von HashSetMathematik – MengendifferenzMathematik – Symmetrische DifferenzIteration über MengenÜbe selbstständig: Online-C#-Compiler