ValueTuple Struktur
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt statische Methoden zum Erstellen von Werttupeln bereit.
public value class ValueTuple : IComparable, IComparable<ValueTuple>, IEquatable<ValueTuple>, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable, System::Runtime::CompilerServices::ITuple
public value class ValueTuple : IComparable, IComparable<ValueTuple>, IEquatable<ValueTuple>, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable
public struct ValueTuple : IComparable, IComparable<ValueTuple>, IEquatable<ValueTuple>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple
public struct ValueTuple : IComparable, IComparable<ValueTuple>, IEquatable<ValueTuple>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
[System.Serializable]
public struct ValueTuple : IComparable, IComparable<ValueTuple>, IEquatable<ValueTuple>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
type ValueTuple = struct
interface ITuple
type ValueTuple = struct
[<System.Serializable>]
type ValueTuple = struct
interface ITuple
Public Structure ValueTuple
Implements IComparable, IComparable(Of ValueTuple), IEquatable(Of ValueTuple), IStructuralComparable, IStructuralEquatable, ITuple
Public Structure ValueTuple
Implements IComparable, IComparable(Of ValueTuple), IEquatable(Of ValueTuple), IStructuralComparable, IStructuralEquatable
- Vererbung
- Attribute
- Implementiert
Hinweise
Ein Tupel ist eine Datenstruktur mit einer bestimmten Anzahl und Abfolge von Elementen. Ein Beispiel für ein Tupel ist eine Datenstruktur mit drei Elementen (bekannt als 3-Tupel oder Dreifach), die verwendet wird, um einen Bezeichner wie den Namen einer Person im ersten Element, ein Jahr im zweiten Element und das Einkommen der Person für dieses Jahr im dritten Element zu speichern.
Werttupel sind Tupeltypen, die in der .NET Framework 4.7 eingeführt werden, um die Laufzeitimplementierung von Tupeln in C# bereitzustellen und Tupel in F# zu strukturieren. Sie unterscheiden sich von den Tupelklassen, z Tuple<T1>. B. , Tuple<T1,T2>usw., wie folgt:
Sie sind Strukturen (Werttypen) anstelle von Klassen (Referenztypen).
Sie sind stummschaltbar statt schreibgeschützt. Das heißt, der Wert von Tupelkomponenten kann sich ändern.
Ihre Datenelemente, z
Item1
. B. ,Item2
usw., sind Felder anstelle von Eigenschaften.
Die ValueTuple Struktur stellt ein Tupel dar, das keine Elemente enthält. Es ist hauptsächlich für seine statischen Methoden nützlich, mit denen Sie Instanzen von Wert-Tupeltypen erstellen und vergleichen können. Mit seinen Hilfsmethoden können Sie Tupelwerte instanziieren, ohne explizit den Typ der einzelnen Wert-Tupelkomponenten anzugeben. Durch Aufrufen der statischen Create Methoden können Sie Wert-Tupel erstellen, die von null bis acht Komponenten enthalten. Für Wert-Tupel mit mehr als acht Komponenten müssen Sie den ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> Konstruktor aufrufen.
Serialisierung und Wert-Tupel
Der ValueTuple Typ ist in .NET Core 1.x oder in den .NET Framework 4.7 und früheren Versionen nicht serialisierbar. Darüber hinaus ist .NET Standard, einschließlich .NET Standard 2.0, keine Serialisierung von ValueTuple Instanzen erforderlich. Gibt an, ob eine ValueTuple Instanz serialisiert werden kann, hängt von der einzelnen .NET Standardimplementierung ab. Um zu bestimmen, ob ein Typ für eine ValueTuple bestimmte .NET-Implementierung serialisierbar ist, rufen Sie ein Type Objekt ab, das den ValueTuple Typ darstellt und den Wert seiner IsSerializable Eigenschaft abruft. Eine Liste der serialisierbaren Typen in .NET Core und der .NET Framework finden Sie unter Binary Serialization.
Methoden
CompareTo(ValueTuple) |
Vergleicht die aktuelle ValueTuple-Instanz mit einer angegebenen ValueTuple-Instanz. |
Create() |
Erstellt ein neues Werttupel mit null Komponenten. |
Create<T1,T2,T3,T4,T5,T6,T7,T8>(T1, T2, T3, T4, T5, T6, T7, T8) |
Erstellt ein neues Werttupel mit acht Komponenten (ein Oktupel). |
Create<T1,T2,T3,T4,T5,T6,T7>(T1, T2, T3, T4, T5, T6, T7) |
Erstellt ein neues Werttupel mit sieben Komponenten. |
Create<T1,T2,T3,T4,T5,T6>(T1, T2, T3, T4, T5, T6) |
Erstellt ein neues Werttupel mit sechs Komponenten. |
Create<T1,T2,T3,T4,T5>(T1, T2, T3, T4, T5) |
Erstellt ein neues Werttupel mit fünf Komponenten (ein Quintupel). |
Create<T1,T2,T3,T4>(T1, T2, T3, T4) |
Erstellt ein neues Werttupel mit vier Komponenten (ein Quadrupel). |
Create<T1,T2,T3>(T1, T2, T3) |
Erstellt ein neues Werttupel mit drei Komponenten (ein Tripel). |
Create<T1,T2>(T1, T2) |
Erstellt ein neues Werttupel mit zwei Komponenten (ein Paar). |
Create<T1>(T1) |
Erstellt ein neues Werttupel mit einer Komponente (ein Singleton). |
Equals(Object) |
Gibt einen Wert zurück, der angibt, ob die aktuelle ValueTuple-Instanz gleich einem angegebenen Objekt ist. |
Equals(ValueTuple) |
Stellt fest, ob zwei ValueTuple-Instanzen gleich sind. Diese Methode gibt immer |
GetHashCode() |
Gibt den Hashcode für die aktuelle ValueTuple-Instanz zurück. |
ToString() |
Gibt die Zeichenfolgendarstellung dieser ValueTuple-Instanz zurück. |
Explizite Schnittstellenimplementierungen
IComparable.CompareTo(Object) |
Vergleicht diese ValueTuple-Instanz mit einem angegebenen Objekt und gibt eine Angabe über das Verhältnis der entsprechenden Werte zurück. |
IStructuralComparable.CompareTo(Object, IComparer) |
Vergleicht die aktuelle ValueTuple-Instanz mit einem angegebenen Objekt. |
IStructuralEquatable.Equals(Object, IEqualityComparer) |
Gibt einen Wert zurück, der angibt, ob die aktuelle ValueTuple-Instanz nach einer angegebenen Vergleichsmethode gleich einem angegebenen Objekt ist. |
IStructuralEquatable.GetHashCode(IEqualityComparer) |
Gibt den Hashcode für diese ValueTuple-Instanz zurück. |
ITuple.Item[Int32] |
Gibt einen IndexOutOfRangeException zurück. Es befinden sich keine Elemente in |
ITuple.Length |
Ruft die Länge dieser |