ValueTuple ValueTuple ValueTuple ValueTuple Struct

Definition

Stellt statische Methoden zum Erstellen von Werttupeln bereit.Provides static methods for creating value tuples.

public value class ValueTuple : IComparable, IComparable<ValueTuple>, IEquatable<ValueTuple>, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable, System::Runtime::CompilerServices::ITuple
[System.Serializable]
public struct ValueTuple : IComparable, IComparable<ValueTuple>, IEquatable<ValueTuple>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple
type ValueTuple = struct
    interface ITuple
Public Structure ValueTuple
Implements IComparable, IComparable(Of ValueTuple), IEquatable(Of ValueTuple), IStructuralComparable, IStructuralEquatable, ITuple
Vererbung
ValueTupleValueTupleValueTupleValueTuple
Attribute
Implementiert

Hinweise

Ein Tupel ist eine Datenstruktur, die über eine bestimmte Anzahl und eine bestimmte Sequenz von Elementen verfügt.A tuple is a data structure that has a specific number and sequence of elements. Ein Beispiel für ein Tupel ist eine Datenstruktur mit drei Elementen (als 3-Tupel oder dreifach bezeichnet), die zum Speichern eines Bezeichners verwendet wird, z. b. der Name einer Person im ersten Element, ein Jahr im zweiten Element und das Einkommen der Person für dieses Jahr im dritten Element.An example of a tuple is a data structure with three elements (known as a 3-tuple or triple) that is used to store an identifier such as a person's name in the first element, a year in the second element, and the person's income for that year in the third element.

Wertetupel sind Tupeltypen, die .NET Framework 4.7.NET Framework 4.7 in eingeführt wurden, um die Lauf Zeit Implementierung von Tupeln in C# -und-strukturtupel in F#bereitzustellen.Value tuples are tuple types introduced in the .NET Framework 4.7.NET Framework 4.7 to provide the runtime implementation of tuples in C# and struct tuples in F#. Sie unterscheiden sich von den tupelklassen, Tuple<T1>z Tuple<T1,T2>. b., usw., wie folgt:They differ from the tuple classes, such as Tuple<T1>, Tuple<T1,T2>, etc., as follows:

  • Dabei handelt es sich um Strukturen (Werttypen) anstelle von Klassen (Verweis Typen).They are structures (value types) rather than classes (reference types).

  • Sie sind änderbar und nicht schreibgeschützt.They are mutable rather than read-only. Das heißt, der Wert von tupelkomponenten kann sich ändern.That is, the value of tuple components can change.

  • Ihre Datenmember, z Item1. b., Item2usw., sind Felder und keine Eigenschaften.Their data members, such as Item1, Item2, etc., are fields rather than properties.

Die ValueTuple -Struktur stellt ein Tupel dar, das keine-Elemente enthält.The ValueTuple structure represents a tuple that has no elements. Dies ist in erster Linie für die statischen Methoden nützlich, mit denen Sie Instanzen von werttupeltypen erstellen und vergleichen können.It is useful primarily for its static methods that let you create and compare instances of value tuple types. Mit den zugehörigen Hilfsmethoden können Sie werttupeln instanziieren, ohne explizit den Typ der einzelnen werttupelkomponenten angeben zu müssen.Its helper methods let you instantiate value tuples without having to explicitly specify the type of each value tuple component. Durch Aufrufen der statischen Create Methoden können Sie werttupeln mit 0 (null) und acht Komponenten erstellen.By calling its static Create methods, you can create value tuples that have from zero to eight components. Für wertetupel mit mehr als acht Komponenten müssen Sie den ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> -Konstruktor aufrufen.For value tuples with more than eight components, you must call the ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> constructor.

Serialisierung und wertetupelSerialization and value tuples

Der ValueTuple Typ ist in .net Core 1. x oder in den .NET Framework 4,7 und früheren Versionen nicht serialisierbar.The ValueTuple type is not serializable in .NET Core 1.x or in the .NET Framework 4.7 and earlier versions. Außerdem wird von .NET Standard, einschließlich .NET Standard 2,0, keine Serialisierung von ValueTuple -Instanzen vorgeschrieben. unabhängig davon, ob eine ValueTuple -Instanz serialisierbar ist, hängt von der individuellen .NET Standard-Implementierung ab.In addition, .NET Standard, including .NET Standard 2.0, does not mandate serialization of ValueTuple instances; whether or not a ValueTuple instance is serializable depends on the individual .NET Standard implementation. Um zu ermitteln, ValueTuple ob ein Typ für eine bestimmte .NET-Implementierung serialisierbar ist Type , rufen Sie ein ValueTuple -Objekt ab, das den Typ IsSerializable darstellt, und rufen Sie den Wert seiner-Eigenschaft ab.To determine whether a ValueTuple type is serializable on a particular .NET implementation, get a Type object that represents the ValueTuple type and retrieve the value of its IsSerializable property. Eine Liste der serialisierbaren Typen in .net Core und der .NET Framework finden Sie unter binäre Serialisierung.For a list of serializable types in .NET Core and the .NET Framework, see Binary Serialization.

Methoden

CompareTo(ValueTuple) CompareTo(ValueTuple) CompareTo(ValueTuple) CompareTo(ValueTuple)

Vergleicht die aktuelle ValueTuple-Instanz mit einer angegebenen ValueTuple-Instanz.Compares the current ValueTuple instance to a specified ValueTuple instance.

Create() Create() Create() Create()

Erstellt ein neues Werttupel mit null Komponenten.Creates a new value tuple with zero components.

Create<T1,T2,T3,T4,T5,T6,T7,T8>(T1, T2, T3, T4, T5, T6, T7, T8) Create<T1,T2,T3,T4,T5,T6,T7,T8>(T1, T2, T3, T4, T5, T6, T7, T8) Create<T1,T2,T3,T4,T5,T6,T7,T8>(T1, T2, T3, T4, T5, T6, T7, T8) 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).Creates a new value tuple with 8 components (an octuple).

Create<T1,T2,T3,T4,T5,T6,T7>(T1, T2, T3, T4, T5, T6, T7) Create<T1,T2,T3,T4,T5,T6,T7>(T1, T2, T3, T4, T5, T6, T7) Create<T1,T2,T3,T4,T5,T6,T7>(T1, T2, T3, T4, T5, T6, T7) Create<T1,T2,T3,T4,T5,T6,T7>(T1, T2, T3, T4, T5, T6, T7)

Erstellt ein neues Werttupel mit sieben Komponenten.Creates a new value tuple with 7 components (a septuple).

Create<T1,T2,T3,T4,T5,T6>(T1, T2, T3, T4, T5, T6) Create<T1,T2,T3,T4,T5,T6>(T1, T2, T3, T4, T5, T6) Create<T1,T2,T3,T4,T5,T6>(T1, T2, T3, T4, T5, T6) Create<T1,T2,T3,T4,T5,T6>(T1, T2, T3, T4, T5, T6)

Erstellt ein neues Werttupel mit sechs Komponenten.Creates a new value tuple with 6 components (a sexuple).

Create<T1,T2,T3,T4,T5>(T1, T2, T3, T4, T5) Create<T1,T2,T3,T4,T5>(T1, T2, T3, T4, T5) Create<T1,T2,T3,T4,T5>(T1, T2, T3, T4, T5) Create<T1,T2,T3,T4,T5>(T1, T2, T3, T4, T5)

Erstellt ein neues Werttupel mit fünf Komponenten (ein Quintupel).Creates a new value tuple with 5 components (a quintuple).

Create<T1,T2,T3,T4>(T1, T2, T3, T4) Create<T1,T2,T3,T4>(T1, T2, T3, T4) Create<T1,T2,T3,T4>(T1, T2, T3, T4) Create<T1,T2,T3,T4>(T1, T2, T3, T4)

Erstellt ein neues Werttupel mit vier Komponenten (ein Quadrupel).Creates a new value tuple with 4 components (a quadruple).

Create<T1,T2,T3>(T1, T2, T3) Create<T1,T2,T3>(T1, T2, T3) Create<T1,T2,T3>(T1, T2, T3) Create<T1,T2,T3>(T1, T2, T3)

Erstellt ein neues Werttupel mit drei Komponenten (ein Tripel).Creates a new value tuple with 3 components (a triple).

Create<T1,T2>(T1, T2) Create<T1,T2>(T1, T2) Create<T1,T2>(T1, T2) Create<T1,T2>(T1, T2)

Erstellt ein neues Werttupel mit zwei Komponenten (ein Paar).Creates a new value tuple with 2 components (a pair).

Create<T1>(T1) Create<T1>(T1) Create<T1>(T1) Create<T1>(T1)

Erstellt ein neues Werttupel mit einer Komponente (ein Singleton).Creates a new value tuple with 1 component (a singleton).

Equals(ValueTuple) Equals(ValueTuple) Equals(ValueTuple) Equals(ValueTuple)

Stellt fest, ob zwei ValueTuple-Instanzen gleich sind.Determines whether two ValueTuple instances are equal. Diese Methode gibt immer true zurück.This method always returns true.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Gibt einen Wert zurück, der angibt, ob die aktuelle ValueTuple-Instanz gleich einem angegebenen Objekt ist.Returns a value that indicates whether the current ValueTuple instance is equal to a specified object.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Gibt den Hashcode für die aktuelle ValueTuple-Instanz zurück.Returns the hash code for the current ValueTuple instance.

ToString() ToString() ToString() ToString()

Gibt die Zeichenfolgendarstellung dieser ValueTuple-Instanz zurück.Returns the string representation of this ValueTuple instance.

Explizite Schnittstellenimplementierungen

IStructuralComparable.CompareTo(Object, IComparer) IStructuralComparable.CompareTo(Object, IComparer) IStructuralComparable.CompareTo(Object, IComparer) IStructuralComparable.CompareTo(Object, IComparer)

Vergleicht die aktuelle ValueTuple-Instanz mit einem angegebenen Objekt.Compares the current ValueTuple instance to a specified object.

IStructuralEquatable.Equals(Object, IEqualityComparer) IStructuralEquatable.Equals(Object, IEqualityComparer) IStructuralEquatable.Equals(Object, IEqualityComparer) 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.Returns a value that indicates whether the current ValueTuple instance is equal to a specified object based on a specified comparison method.

IStructuralEquatable.GetHashCode(IEqualityComparer) IStructuralEquatable.GetHashCode(IEqualityComparer) IStructuralEquatable.GetHashCode(IEqualityComparer) IStructuralEquatable.GetHashCode(IEqualityComparer)

Gibt den Hashcode für diese ValueTuple-Instanz zurück.Returns the hash code for this ValueTuple instance.

IComparable.CompareTo(Object) IComparable.CompareTo(Object) IComparable.CompareTo(Object) IComparable.CompareTo(Object)

Vergleicht diese ValueTuple-Instanz mit einem angegebenen Objekt und gibt eine Angabe über das Verhältnis der entsprechenden Werte zurück.Compares this ValueTuple instance with a specified object and returns an indication of their relative values.

ITuple.Item[Int32] ITuple.Item[Int32] ITuple.Item[Int32] ITuple.Item[Int32]

Gibt einen IndexOutOfRangeException zurück.Returns an IndexOutOfRangeException. Es befinden sich keine Elemente in ValueTuple.There are no elements in a ValueTuple.

ITuple.Length ITuple.Length ITuple.Length ITuple.Length

Ruft die Länge dieser ValueTuple-Instanz ab, was immer 0 ist.Gets the length of this ValueTuple instance, which is always 0. Es befinden sich keine Elemente in ValueTuple.There are no elements in a ValueTuple.

Gilt für: