Heim > Backend-Entwicklung > C++ > Wie implementiert man ein Mehrschlüsselwörterbuch in C#?

Wie implementiert man ein Mehrschlüsselwörterbuch in C#?

Barbara Streisand
Freigeben: 2025-01-08 19:26:42
Original
412 Leute haben es durchsucht

How to Implement a Multi-Key Dictionary in C#?

Mehrschlüsselwörterbuch in C#

C# selbst unterstützt die Datenstruktur eines Mehrschlüsselwörterbuchs nicht. Einige Open-Source-Bibliotheken bieten diese Funktionalität jedoch an.

Tupelbasierte Implementierung

Ein gängiger Ansatz besteht darin, Tupel als Schlüssel zu verwenden. Ein Tupel ist eine Datenstruktur, die eine Sammlung mehrerer Werte darstellt, von denen jeder seinen eigenen Typ hat. Der folgende Code definiert beispielsweise ein Tupel, das zwei Schlüssel (eine Zeichenfolge und eine Ganzzahl) enthält:

<code class="language-csharp">var tuple = (key1: "key1", key2: 1);</code>
Nach dem Login kopieren

Sie können das Tupel dann als Schlüssel des Wörterbuchs verwenden:

<code class="language-csharp">var dictionary = new Dictionary<Tuple<string, int>, string>();
dictionary.Add(tuple, "value");</code>
Nach dem Login kopieren

Strukturbasierte Umsetzung

Eine weitere Option besteht darin, eine benutzerdefinierte Struktur zu definieren, um den Mehrschlüsselwert darzustellen. Der folgende Code definiert eine Struktur mit zwei Feldern:

<code class="language-csharp">public struct Key
{
    public string Key1 { get; set; }
    public int Key2 { get; set; }
}</code>
Nach dem Login kopieren

Sie können die Struktur dann als Schlüssel für ein Wörterbuch verwenden:

<code class="language-csharp">var dictionary = new Dictionary<Key, string>();
dictionary.Add(new Key { Key1 = "key1", Key2 = 1 }, "value");</code>
Nach dem Login kopieren

Wertobjektimplementierung

Ein ausgefeilterer Ansatz besteht darin, eine Klasse zu definieren, um mehrere Werte zu kapseln und die Wertesemantik durchzusetzen. Dieser Ansatz bietet eine übersichtliche und einfach zu wartende Möglichkeit, mit Daten mit mehreren Schlüsseln umzugehen. Der folgende Code definiert ein Wertobjekt mit zwei Feldern:

<code class="language-csharp">public class ValueObject
{
    public string Key1 { get; private set; }
    public int Key2 { get; private set; }

    public ValueObject(string key1, int key2)
    {
        Key1 = key1;
        Key2 = key2;
    }

    public override bool Equals(object obj)
    {
        return obj is ValueObject other &&
               other.Key1 == Key1 &&
               other.Key2 == Key2;
    }

    public override int GetHashCode()
    {
        return HashCode.Combine(Key1, Key2);
    }
}</code>
Nach dem Login kopieren

Sie können dann das Wertobjekt als Schlüssel des Wörterbuchs verwenden:

<code class="language-csharp">var dictionary = new Dictionary<ValueObject, string>();
dictionary.Add(new ValueObject("key1", 1), "value");</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie implementiert man ein Mehrschlüsselwörterbuch in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage