ValueTuple ValueTuple ValueTuple ValueTuple Struct

Определение

Предоставляет статические методы для создания кортежей значений.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
Наследование
ValueTupleValueTupleValueTupleValueTuple
Атрибуты
Реализации

Комментарии

Кортеж — это структура данных, с определенным номером и последовательность элементов.A tuple is a data structure that has a specific number and sequence of elements. Примером кортеж — это структура данных с тремя элементами (известный как 3-кортежей или трижды), используемый для хранения идентификатора, такого как имя пользователя в первый элемент, в году в второй элемент и его доход за этот год в третий элемент.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.

Значение кортежи — это типы кортежей, представленные в .NET Framework 4.7.NET Framework 4.7 для реализации метода среды выполнения кортежей в C# и структурных кортежей в 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#. Они отличаются от классов кортежей, таких как Tuple<T1>, Tuple<T1,T2>т. д., как показано ниже:They differ from the tuple classes, such as Tuple<T1>, Tuple<T1,T2>, etc., as follows:

  • Они являются структуры (типы значений), а не классах (ссылочных типах).They are structures (value types) rather than classes (reference types).

  • Они являются изменяемыми, а не только для чтения.They are mutable rather than read-only. То есть можно изменить значение компонентов кортежа.That is, the value of tuple components can change.

  • Их данные-члены, такие как Item1, Item2и пр., полей, а не свойства.Their data members, such as Item1, Item2, etc., are fields rather than properties.

ValueTuple Структура представляет кортеж, который не содержит элементов.The ValueTuple structure represents a tuple that has no elements. Она предназначена главным образом для его статические методы, которые позволяют создавать и сравнения экземпляров типы кортежей значений.It is useful primarily for its static methods that let you create and compare instances of value tuple types. Его вспомогательные методы позволяют создать экземпляр кортежей значение без необходимости явно указывать тип каждого компонента кортежа значение.Its helper methods let you instantiate value tuples without having to explicitly specify the type of each value tuple component. Путем вызова его статическое Create методов, можно создать значение кортежей с от нуля до восьми компонентов.By calling its static Create methods, you can create value tuples that have from zero to eight components. Для значения кортежей с более чем восьми компонентов, необходимо вызвать 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.

Сериализация и значение кортежейSerialization and value tuples

ValueTuple Тип не может быть сериализован в .NET Core 1.x или .NET Framework 4.7 и более ранних версий.The ValueTuple type is not serializable in .NET Core 1.x or in the .NET Framework 4.7 and earlier versions. Кроме того, .NET Standard, включая .NET Standard 2.0, не требует сериализации ValueTuple экземпляров; ли ValueTuple экземпляр может быть сериализован зависит от реализации отдельных .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. Чтобы определить ли ValueTuple тип может быть сериализован в конкретной реализации .NET, получить Type , представляющий ValueTuple введите и извлечение значений его 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. Список сериализуемых типов в .NET Core и .NET Framework, см. в разделе двоичной сериализации.For a list of serializable types in .NET Core and the .NET Framework, see Binary Serialization.

Методы

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

Сравнивает текущий экземпляр ValueTuple с указанным экземпляром ValueTuple.Compares the current ValueTuple instance to a specified ValueTuple instance.

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

Создает новый кортеж значений без компонентов.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)

Создает новый кортеж значений с 8 компонентами.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)

Создает новый кортеж значений с 7 компонентами.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)

Создает новый кортеж значений с 6 компонентами.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)

Создает новый кортеж значений с 5 компонентами.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)

Создает новый кортеж значений с 4 компонентами.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)

Создает новый кортеж значений с тремя компонентами.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)

Создает новый кортеж значений с 2 компонентами.Creates a new value tuple with 2 components (a pair).

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

Создает новый кортеж значений с 1 компонентом.Creates a new value tuple with 1 component (a singleton).

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

Определяет, равны ли два экземпляра ValueTuple.Determines whether two ValueTuple instances are equal. Этот метод всегда возвращает значение true.This method always returns true.

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

Возвращает значение, показывающее, равен ли текущий экземпляр ValueTuple указанному объекту.Returns a value that indicates whether the current ValueTuple instance is equal to a specified object.

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

Возвращает хэш-код текущего экземпляра ValueTuple.Returns the hash code for the current ValueTuple instance.

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

Возвращает строковое представление этого экземпляра ValueTuple.Returns the string representation of this ValueTuple instance.

Явные реализации интерфейса

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

Сравнивает текущий экземпляр ValueTuple с указанным объектом.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)

Возвращает значение, показывающее, равен ли текущий экземпляр ValueTuple указанному объекту, на основе заданного метода сравнения.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)

Возвращает хэш-код этого экземпляра ValueTuple.Returns the hash code for this ValueTuple instance.

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

Сравнивает этот экземпляр ValueTuple с заданным объектом и возвращает значение, указывающее, как соотносятся значения этих объектов.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]

Возвращает значение типа IndexOutOfRangeException.Returns an IndexOutOfRangeException. В ValueTuple отсутствуют элементы.There are no elements in a ValueTuple.

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

Получает длину этого экземпляра ValueTuple, которая всегда равна 0.Gets the length of this ValueTuple instance, which is always 0. В ValueTuple отсутствуют элементы.There are no elements in a ValueTuple.

Применяется к