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. Примером кортежа является структура данных с тремя элементами (называемых тремя кортежами или тройной), которая используется для хранения идентификатора, например имени человека в первом элементе, года второго элемента и дохода пользователя за этот год в третьем элементе.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.

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