Прочитать на английском

Поделиться через


Tuple<T1,T2,T3,T4,T5,T6,T7> Класс

Определение

Представляет кортеж из семи компонентов.

public class Tuple<T1,T2,T3,T4,T5,T6,T7> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
public class Tuple<T1,T2,T3,T4,T5,T6,T7> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple
[System.Serializable]
public class Tuple<T1,T2,T3,T4,T5,T6,T7> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable

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

T1

Тип первого компонента кортежа.

T2

Тип второго компонента кортежа.

T3

Тип третьего компонента кортежа.

T4

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

T5

Тип пятого компонента кортежа.

T6

Тип шестого компонента кортежа.

T7

Тип седьмого компонента кортежа.

Наследование
Tuple<T1,T2,T3,T4,T5,T6,T7>
Атрибуты
Реализации

Комментарии

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

Вы можете создать Tuple<T1,T2,T3,T4,T5,T6,T7> экземпляр объекта, вызвав либо Tuple<T1,T2,T3,T4,T5,T6,T7> статический Tuple.Create<T1,T2,T3,T4,T5,T6,T7>(T1, T2, T3, T4, T5, T6, T7) метод. Значение компонентов кортежа можно получить с помощью свойств экземпляра, доступных только Item1для чтения , Item2, Item3, , Item4и Item5Item6Item7 экземпляра.

Кортежи обычно используются четырьмя разными способами:

  • Представление одного набора данных. Например, кортеж может представлять запись базы данных, а его компоненты могут представлять отдельные поля записи.

  • Для обеспечения простого доступа к набору данных и управления ими. В следующем примере определяется Tuple<T1,T2,T3,T4,T5,T6,T7> объект, содержащий данные о населении для Нью-йорка для каждой переписи с 1950 по 2000 год. Разделителя передается методу ComputePopulationChange , который вычисляет годовой показатель изменений между переписями, а также годовой показатель изменений в течение всего 60-летнего периода.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          // Get population data for New York City, 1950-2000.
          var population = Tuple.Create("New York", 7891957, 7781984, 
                                        7894862, 7071639, 7322564, 8008278);
          var rate = ComputePopulationChange(population);
          // Display results.
          Console.WriteLine("Population Change, {0}, 1950-2000\n", population.Item1);
          Console.WriteLine("Year      {0,10} {1,9}", "Population", "Annual Rate");
          Console.WriteLine("1950      {0,10:N0} {1,11}", population.Item2, "NA");
          Console.WriteLine("1960      {0,10:N0} {1,11:P2}", population.Item3, rate.Item2/10);
          Console.WriteLine("1970      {0,10:N0} {1,11:P2}", population.Item4, rate.Item3/10);
          Console.WriteLine("1980      {0,10:N0} {1,11:P2}", population.Item5, rate.Item4/10);
          Console.WriteLine("1990      {0,10:N0} {1,11:P2}", population.Item6, rate.Item5/10);
          Console.WriteLine("2000      {0,10:N0} {1,11:P2}", population.Item7, rate.Item6/10);
          Console.WriteLine("1950-2000 {0,10:N0} {1,11:P2}", "", rate.Item7/50);
       }
    
       private static Tuple<string, double, double, double, double, double, double> 
            ComputePopulationChange(
               Tuple<string, int, int, int, int, int, int> data)  
       {           
          var rate = Tuple.Create(data.Item1, 
                           (double)(data.Item3 - data.Item2)/data.Item2, 
                           (double)(data.Item4 - data.Item3)/data.Item3, 
                           (double)(data.Item5 - data.Item4)/data.Item4, 
                           (double)(data.Item6 - data.Item5)/data.Item5,
                           (double)(data.Item7 - data.Item6)/data.Item6,
                           (double)(data.Item7 - data.Item2)/data.Item2 );
          return rate;
       }           
    }
    // The example displays the following output:
    //       Population Change, New York, 1950-2000
    //       
    //       Year      Population Annual Rate
    //       1950       7,891,957          NA
    //       1960       7,781,984     -0.14 %
    //       1970       7,894,862      0.15 %
    //       1980       7,071,639     -1.04 %
    //       1990       7,322,564      0.35 %
    //       2000       8,008,278      0.94 %
    //       1950-2000                 0.03 %
    
  • Получение нескольких значений из метода без использования out параметров (в C#) или ByRef параметров (в Visual Basic). Например, предыдущий пример возвращает вычисляемую статистику вместе с именем города в объекте Tuple<T1,T2,T3,T4,T5,T6,T7> .

  • Передача нескольких значений методу через один параметр. Например, метод Thread.Start(Object) имеет один параметр, который позволяет указать одно значение методу, который выполняется потоком при запуске. Если вы предоставляете Tuple<T1,T2,T3,T4,T5,T6,T7> объект в качестве аргумента метода, можно указать подпрограмму запуска потока с семью элементами данных.

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

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

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

Свойства

Item1

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

Item2

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

Item3

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

Item4

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

Item5

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

Item6

Получает значение шестого компонента текущего объекта Tuple<T1,T2,T3,T4,T5,T6,T7>.

Item7

Получает значение седьмого компонента текущего объекта Tuple<T1,T2,T3,T4,T5,T6,T7>.

Методы

Equals(Object)

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

GetHashCode()

Возвращает хэш-код для текущего объекта Tuple<T1,T2,T3,T4,T5,T6,T7>.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

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

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

IComparable.CompareTo(Object)

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

IStructuralComparable.CompareTo(Object, IComparer)

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

IStructuralEquatable.Equals(Object, IEqualityComparer)

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

IStructuralEquatable.GetHashCode(IEqualityComparer)

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

ITuple.Item[Int32]

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

ITuple.Length

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

Методы расширения

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

Разбивает кортеж с 7 элементами на отдельные переменные.

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

Преобразует экземпляр класса Tuple в экземпляр структуры ValueTuple.

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

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