ValueTuple Struktura

Definicja

Zapewnia statyczne metody tworzenia krotek wartości.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
Dziedziczenie
ValueTuple
Atrybuty
Implementuje

Uwagi

Krotka jest strukturą danych, która ma określoną liczbę i sekwencję elementów.A tuple is a data structure that has a specific number and sequence of elements. Przykładem krotki jest struktura danych z trzema elementami (nazywana 3-krotką lub potrójną), która jest używana do przechowywania identyfikatora, takiego jak nazwisko osoby w pierwszym elemencie, rok w drugim elemencie oraz dochód osoby dla tego roku w trzecim elemencie.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.

Krotki wartości są typami krotek wprowadzonymi w .NET framework 4.7.NET Framework 4.7, aby zapewnić implementację w środowisku uruchomieniowym krotek C# w i krotek struktury w F#.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#. Różnią się one od klas krotek, takich jak Tuple<T1>, Tuple<T1,T2> itp., w następujący sposób:They differ from the tuple classes, such as Tuple<T1>, Tuple<T1,T2>, etc., as follows:

  • Są to struktury (typy wartości), a nie klasy (typy referencyjne).They are structures (value types) rather than classes (reference types).

  • Są one modyfikowalne, a nie tylko do odczytu.They are mutable rather than read-only. Oznacza to, że można zmienić wartość składników krotki.That is, the value of tuple components can change.

  • Ich składowe danych, takie jak Item1, Item2 itp., to pola, a nie właściwości.Their data members, such as Item1, Item2, etc., are fields rather than properties.

Struktura ValueTuple reprezentuje krotkę, która nie ma elementów.The ValueTuple structure represents a tuple that has no elements. Jest to przydatne głównie dla metod statycznych, które pozwalają tworzyć i porównywać wystąpienia typów krotek wartości.It is useful primarily for its static methods that let you create and compare instances of value tuple types. Metody pomocnika umożliwiają utworzenie wystąpienia spójnych krotek, bez konieczności jawnego określania typu każdego składnika krotki wartości.Its helper methods let you instantiate value tuples without having to explicitly specify the type of each value tuple component. Wywołując swoje statyczne metody Create, można utworzyć krotki wartości, które mają od zera do ośmiu składników.By calling its static Create methods, you can create value tuples that have from zero to eight components. W przypadku krotek wartości z więcej niż ośmiu składnikami, należy wywołać konstruktora ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>.For value tuples with more than eight components, you must call the ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> constructor.

Serializacji i krotek wartościSerialization and value tuples

Nie można serializować typu ValueTuple w programie .NET Core 1. x lub w .NET Framework 4,7 i wcześniejszych wersjach.The ValueTuple type is not serializable in .NET Core 1.x or in the .NET Framework 4.7 and earlier versions. Ponadto .NET Standard, w tym .NET Standard 2,0, nie przypuszczalnie serializacji wystąpień ValueTuple; niezależnie od tego, czy wystąpienie ValueTuple jest serializowane, zależy od implementacji poszczególnych .NET Standard.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. Aby określić, czy typ ValueTuple jest możliwy do serializacji w określonej implementacji platformy .NET, Pobierz obiekt Type, który reprezentuje ValueTuple typ i Pobierz wartość jej właściwości IsSerializable.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. Aby uzyskać listę typów możliwych do serializacji w oprogramowaniu .NET Core i .NET Framework, zobacz Serializacja binarna.For a list of serializable types in .NET Core and the .NET Framework, see Binary Serialization.

Metody

CompareTo(ValueTuple)

Porównuje bieżące wystąpienie ValueTuple do określonego wystąpienia ValueTuple.Compares the current ValueTuple instance to a specified ValueTuple instance.

Create()

Tworzy nową krotkę wartości z zerowymi składnikami.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)

Tworzy nową krotkę wartości z 8 składnikami (Octuple).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)

Tworzy nową krotkę wartości z 7 składnikami (septuple).Creates a new value tuple with 7 components (a septuple).

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

Tworzy nową krotkę wartości z 6 składnikami (sexuple).Creates a new value tuple with 6 components (a sexuple).

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

Tworzy nową krotkę wartości z 5 składnikami (Quintuple).Creates a new value tuple with 5 components (a quintuple).

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

Tworzy nową krotkę wartości z 4 składnikami (czterokrotnie).Creates a new value tuple with 4 components (a quadruple).

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

Tworzy nową krotkę wartości z 3 składnikami (potrójną).Creates a new value tuple with 3 components (a triple).

Create<T1,T2>(T1, T2)

Tworzy nową krotkę wartości z 2 składnikami (parą).Creates a new value tuple with 2 components (a pair).

Create<T1>(T1)

Tworzy nową krotkę wartości z 1 składnikiem (pojedynczym).Creates a new value tuple with 1 component (a singleton).

Equals(Object)

Zwraca wartość wskazującą, czy bieżące wystąpienie ValueTuple jest równe podanemu obiektowi.Returns a value that indicates whether the current ValueTuple instance is equal to a specified object.

Equals(ValueTuple)

Określa, czy dwa wystąpienia ValueTuple są równe.Determines whether two ValueTuple instances are equal. Ta metoda zawsze zwraca true.This method always returns true.

GetHashCode()

Zwraca kod skrótu dla bieżącego wystąpienia ValueTuple.Returns the hash code for the current ValueTuple instance.

ToString()

Zwraca ciąg reprezentujący to wystąpienie ValueTuple.Returns the string representation of this ValueTuple instance.

Jawne implementacje interfejsu

IComparable.CompareTo(Object)

Porównuje to ValueTuple wystąpienie z określonym obiektem i zwraca wskazanie ich względnych wartości.Compares this ValueTuple instance with a specified object and returns an indication of their relative values.

IStructuralComparable.CompareTo(Object, IComparer)

Porównuje bieżące wystąpienie ValueTuple z określonym obiektem.Compares the current ValueTuple instance to a specified object.

IStructuralEquatable.Equals(Object, IEqualityComparer)

Zwraca wartość wskazującą, czy bieżące wystąpienie ValueTuple jest równe określonemu obiektowi w oparciu o określoną metodę porównania.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)

Zwraca kod skrótu dla tego wystąpienia ValueTuple.Returns the hash code for this ValueTuple instance.

ITuple.Item[Int32]

Zwraca IndexOutOfRangeException.Returns an IndexOutOfRangeException. Brak elementów w ValueTuple.There are no elements in a ValueTuple.

ITuple.Length

Pobiera długość tego wystąpienia ValueTuple, która jest zawsze równa 0.Gets the length of this ValueTuple instance, which is always 0. Brak elementów w ValueTuple.There are no elements in a ValueTuple.

Dotyczy