ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> Структура

Определение

Представляет кортеж значений из n компонентов, где n больше или равно 8.

generic <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename TRest>
 where TRest : value classpublic value class ValueTuple : IComparable, IComparable<ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>>, IEquatable<ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>>, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable, System::Runtime::CompilerServices::ITuple
generic <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename TRest>
 where TRest : value classpublic value class ValueTuple : IComparable, IComparable<ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>>, IEquatable<ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>>, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable
public struct ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> : IComparable, IComparable<(T1, T2, T3, T4, T5, T6, T7, TRest)>, IEquatable<(T1, T2, T3, T4, T5, T6, T7, TRest)>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple where TRest : struct
public struct ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> : IComparable, IComparable<(T1, T2, T3, T4, T5, T6, T7, TRest)>, IEquatable<(T1, T2, T3, T4, T5, T6, T7, TRest)>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable where TRest : struct
[System.Serializable]
public struct ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> : IComparable, IComparable<(T1, T2, T3, T4, T5, T6, T7, TRest)>, IEquatable<(T1, T2, T3, T4, T5, T6, T7, TRest)>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable where TRest : struct
type ValueTuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7, 'Rest (requires 'Rest : struct)> = struct
    interface ITuple
type ValueTuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7, 'Rest (requires 'Rest : struct)> = struct
[<System.Serializable>]
type ValueTuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7, 'Rest (requires 'Rest : struct)> = struct
    interface ITuple
Public Structure ValueTuple(Of T1, T2, T3, T4, T5, T6, T7, TRest)
Implements IComparable, IComparable(Of ValueTuple(Of T1, T2, T3, T4, T5, T6, T7, TRest)), IEquatable(Of ValueTuple(Of T1, T2, T3, T4, T5, T6, T7, TRest)), IStructuralComparable, IStructuralEquatable, ITuple
Public Structure ValueTuple(Of T1, T2, T3, T4, T5, T6, T7, TRest)
Implements IComparable, IComparable(Of ValueTuple(Of T1, T2, T3, T4, T5, T6, T7, TRest)), IEquatable(Of ValueTuple(Of T1, T2, T3, T4, T5, T6, T7, TRest)), IStructuralComparable, IStructuralEquatable

Параметры типа

T1

Тип первого элемента кортежа значений.

T2

Тип второго элемента кортежа значений.

T3

Тип третьего элемента кортежа значений.

T4

Тип четвертого элемента кортежа значений.

T5

Тип пятого элемента кортежа значений.

T6

Тип шестого элемента кортежа значений.

T7

Тип седьмого элемента кортежа значений.

TRest

Любой универсальный экземпляр кортежа значений, который определяет типы остальных элементов кортежа.

Наследование
ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>
Атрибуты
Реализации
IStructuralComparable IStructuralEquatable IComparable IComparable<ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>> IEquatable<ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>> ITuple

Комментарии

Кортеж значений — это структура данных, которая имеет определенное число и последовательность значений. Структура ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> представляет кортеж значений с восемью или более элементами.

Типы кортежей значений отличаются от типов кортежей (например Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>, ниже).

  • Они являются структурами (типами значений), а не классами (ссылочными типами).

  • Такие элементы, как Item1 и Item2 являются полями, а не свойствами.

  • Их поля являются изменяемыми, а не доступны только для чтения.

Типы кортежей значений предоставляют реализацию среды выполнения, которая поддерживает кортежи в C# и кортежей структур в F#. Помимо создания экземпляра ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> с помощью синтаксиса языка, можно вызвать ValueTuple.Create<T1,T2,T3,T4,T5,T6,T7,T8>(T1, T2, T3, T4, T5, T6, T7, T8) фабричные методы.

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

Тип ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> не сериализуется в .NET Core 1.x или в платформа .NET Framework 4.7 и более ранних версиях. Кроме того, .NET Standard, включая .NET Standard 2.0, не требует сериализации ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> экземпляров, независимо от того, является ли ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> экземпляр сериализуемым, зависит от отдельной реализации .NET Standard. Чтобы определить, является ли ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> тип сериализуемым в конкретной реализации .NET, получите Type объект, представляющий ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> тип, и извлеките значение его IsSerializable свойства. Список сериализуемых типов в .NET Core и платформа .NET Framework см. в разделе Двоичная сериализация.

Конструкторы

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

Инициализирует новый экземпляр класса ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>.

Поля

Item1

Получает значение первого элемента текущего экземпляра ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>.

Item2

Получает значение второго элемента текущего экземпляра ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>.

Item3

Получает значение третьего элемента текущего экземпляра ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>.

Item4

Получает значение четвертого элемента текущего экземпляра ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>.

Item5

Получает значение пятого элемента текущего экземпляра ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>.

Item6

Получает значение шестого элемента текущего экземпляра ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>.

Item7

Получает значение седьмого элемента текущего экземпляра ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>.

Rest

Получает остальные элементы текущего экземпляра ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>.

Методы

CompareTo(ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>)

Сравнивает текущий экземпляр ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> с указанным экземпляром ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>.

Equals(Object)

Возвращает значение, показывающее, равен ли текущий экземпляр ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> указанному объекту.

Equals(ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>)

Возвращает значение, показывающее, равен ли текущий экземпляр ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> указанному экземпляру ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>.

GetHashCode()

Вычисляет хэш-код для текущего экземпляра ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>.

ToString()

Возвращает строковое представление значения этого экземпляра ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>.

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

IComparable.CompareTo(Object)

Сравнивает текущий объект ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> с заданным объектом и возвращает целое число, указывающее, находится ли текущий объект в той же позиции, что и указанный объект, после него или перед ним в порядке сортировки.

IStructuralComparable.CompareTo(Object, IComparer)

Сравнивает текущий экземпляр ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> с заданным объектом, используя указанную функцию сравнения, и возвращает целое число, определяющее, находится ли текущий объект в той же позиции, что и указанный объект, после него или перед ним в порядке сортировки.

IStructuralEquatable.Equals(Object, IEqualityComparer)

Возвращает значение, показывающее, равен ли текущий экземпляр ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> указанному объекту, на основе заданного метода сравнения.

IStructuralEquatable.GetHashCode(IEqualityComparer)

Вычисляет хэш-код для текущего экземпляра ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest>, используя указанный метод вычисления.

ITuple.Item[Int32]

Получает значение указанного элемента ValueTuple.

ITuple.Length

Возвращает количество элементов в ValueTuple.

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

См. также раздел