Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Tuple<T1, T2>-Klasse

.NET Framework (current version)
 

Veröffentlicht: Oktober 2016

Stellt ein 2-Tupel (Paar) dar.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

System.Object
  System.Tuple<T1, T2>

[SerializableAttribute]
public class Tuple<T1, T2> : IStructuralEquatable, IStructuralComparable, 
	IComparable

Typparameter

T1

Der Typ der ersten Komponente des Tupels.

T2

Der Typ der zweiten Komponente des Tupels.

NameBeschreibung
System_CAPS_pubmethodTuple<T1, T2>(T1, T2)

Initialisiert eine neue Instanz der Tuple<T1, T2>-Klasse.

NameBeschreibung
System_CAPS_pubpropertyItem1

Ruft den Wert des aktuellen Tuple<T1, T2> erste Komponente des Objekts.

System_CAPS_pubpropertyItem2

Ruft den Wert des aktuellen Tuple<T1, T2> die Sekundenkomponente des Objekts.

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Gibt einen Wert, der angibt, ob die aktuelle Tuple<T1, T2> -Objekt gleich einem angegebenen Objekt ist.(Überschreibt Object.Equals(Object).)

System_CAPS_protmethodFinalize()

Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Geerbt von „Object“.)

System_CAPS_pubmethodGetHashCode()

Gibt den Hashcode für das aktuelle Tuple<T1, T2>-Objekt zurück.(Überschreibt Object.GetHashCode().)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_protmethodMemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.(Geerbt von „Object“.)

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge, die den Wert dieses Tuple<T1, T2> Instanz.(Überschreibt Object.ToString().)

NameBeschreibung
System_CAPS_pubinterfaceSystem_CAPS_privmethodIStructuralComparable.CompareTo(Object, IComparer)

Vergleicht das aktuelle Tuple<T1, T2> Objekt mit einem angegebenen Objekt mithilfe eines angegebenen Vergleichs, und gibt eine ganze Zahl, die angibt, ob das aktuelle Objekt vor, nach oder an derselben Position wie das angegebene Objekt in der Sortierreihenfolge ist.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStructuralEquatable.Equals(Object, IEqualityComparer)

Gibt einen Wert, der angibt, ob die aktuelle Tuple<T1, T2> -Objekt gleich einem angegebenen Objekt auf Grundlage einer angegebenen Vergleichsmethode ist.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStructuralEquatable.GetHashCode(IEqualityComparer)

Berechnet den Hashcode für die aktuelle Tuple<T1, T2> -Objekt mit einer angegebenen Berechnungsmethode.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIComparable.CompareTo(Object)

Vergleicht das aktuelle Tuple<T1, T2> Objekt mit einem angegebenen Objekt und gibt eine ganze Zahl, die angibt, ob das aktuelle Objekt vor, nach oder an derselben Position wie das angegebene Objekt in der Sortierreihenfolge ist.

Ein Tupel ist eine Datenstruktur, die eine bestimmte Anzahl und Sequenz von Werten aufweist. Die Tuple<T1, T2> Klasse stellt ein 2-Tupel bzw. Paar, das ein Tupel ist, die zwei Komponenten verfügt. Ein 2-Tupel ähnelt einer KeyValuePair<TKey, TValue> Struktur.

Instanziieren Sie ein Tuple<T1, T2> Objekt durch Aufrufen der Tuple<T1, T2> -Konstruktor oder die statische Tuple.Create<T1, T2>(T1, T2) Methode. Sie können die Werte von Komponenten des Tupels mit der schreibgeschützten abrufen Item1 und Item2 Instanzeigenschaften.

Tupel werden häufig auf vier verschiedene Arten verwendet:

  • Um einen einzelnen Satz von Daten darzustellen. Z. B. ein Tupel kann einen Datensatz in einer Datenbank darstellen, und seine Komponenten können die Felder des Datensatzes darstellen.

  • Einfacher Zugriff auf und Manipulation eines Datasets bereitzustellen. Im folgende Beispiel wird ein Array von Tuple<T1, T2> -Objekten, die die Namen von Studierenden und ihren entsprechenden enthalten Testergebnisse. Es durchläuft dann das Array, um das mittlere Testergebnis zu berechnen.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          Tuple<string, Nullable<int>>[] scores = 
                        { new Tuple<string, Nullable<int>>("Jack", 78),
                          new Tuple<string, Nullable<int>>("Abbey", 92), 
                          new Tuple<string, Nullable<int>>("Dave", 88),
                          new Tuple<string, Nullable<int>>("Sam", 91), 
                          new Tuple<string, Nullable<int>>("Ed", null),
                          new Tuple<string, Nullable<int>>("Penelope", 82),
                          new Tuple<string, Nullable<int>>("Linda", 99),
                          new Tuple<string, Nullable<int>>("Judith", 84) };
          int number;
          double mean = ComputeMean(scores, out number);
          Console.WriteLine("Average test score: {0:N2} (n={1})", mean, number);
       }
    
       private static double ComputeMean(Tuple<string, Nullable<int>>[] scores, out int n) 
       {
          n = 0;      
          int sum = 0;
          foreach (var score in scores)
          {
             if (score.Item2.HasValue)
             { 
                n += 1;
                sum += score.Item2.Value;
             }
          }     
          if (n > 0)
             return sum / (double) n;
          else
             return 0;
       }
    }
    // The example displays the following output:
    //       Average test score: 88 (n=7)
    
  • Mehrere Werte zurückgeben, von einer Methode ohne die Verwendung von out Parameter (in c#) oder ByRef Parameter (in Visual Basic). Z. B. im folgenden Beispiel wird ein Tuple<T1, T2> Objekt zum Zurückgeben des Quotienten und des Rests einer Ganzzahldivision.

    using System;
    
    public class Class1
    {
       public static void Main()
       {
          int dividend, divisor;
          Tuple<int, int> result;
    
          dividend = 136945; divisor = 178;
          result = IntegerDivide(dividend, divisor);
          if (result != null)
             Console.WriteLine(@"{0} \ {1} = {2}, remainder {3}", 
                               dividend, divisor, result.Item1, result.Item2);
          else
             Console.WriteLine(@"{0} \ {1} = <Error>", dividend, divisor);
    
          dividend = Int32.MaxValue; divisor = -2073;
          result = IntegerDivide(dividend, divisor);
          if (result != null)
             Console.WriteLine(@"{0} \ {1} = {2}, remainder {3}", 
                               dividend, divisor, result.Item1, result.Item2);
          else
             Console.WriteLine(@"{0} \ {1} = <Error>", dividend, divisor);
       }
    
       private static Tuple<int, int> IntegerDivide(int dividend, int divisor)
       {
          try {
             int remainder;
             int quotient = Math.DivRem(dividend, divisor, out remainder);
             return new Tuple<int, int>(quotient, remainder);
          }   
          catch (DivideByZeroException) {
             return null;
          }      
       }
    }
    // The example displays the following output:
    //       136945 \ 178 = 769, remainder 63
    //       2147483647 \ -2073 = -1035930, remainder 757
    
  • Um mehrere Werte an eine Methode über einen einzelnen Parameter zu übergeben. Zum Beispiel die Thread.Start(Object) Methode verfügt über einen einzelnen Parameter, mit dem Sie einen Wert für die Methode angeben, die der Thread beim Start ausführt. Wenn Sie angeben, einen Tuple<T1, T2> -Objekt als Methodenargument, können Sie die Startroutine des Threads mit zwei Elementen von Daten angeben.

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 4.0
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 4.0
Windows Phone Silverlight
Verfügbar seit 8.0
Windows Phone
Verfügbar seit 8.1

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: