Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> Конструктор

Определение

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

public:
 Tuple(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, TRest rest);
public Tuple (T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, TRest rest);
new Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7, 'Rest> : 'T1 * 'T2 * 'T3 * 'T4 * 'T5 * 'T6 * 'T7 * 'Rest -> Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7, 'Rest>
Public Sub New (item1 As T1, item2 As T2, item3 As T3, item4 As T4, item5 As T5, item6 As T6, item7 As T7, rest As TRest)

Параметры

item1
T1

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

item2
T2

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

item3
T3

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

item4
T4

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

item5
T5

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

item6
T6

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

item7
T7

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

rest
TRest

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

Исключения

rest не является универсальным объектом Tuple.

Примеры

В следующем примере создается 17 кортежей, содержащий данные о населении для города Детройт, Штат Мичиган, для каждой переписи с 1860 по 2000 год. Первым компонентом кортежа является название города. Второй компонент — дата начала ряда данных, а третий компонент — заполнение на начальной дате. Каждый последующий компонент предоставляет заполнение через десятилетний интервал. В примере используются два слоя вложенности для создания кортежа с 17 кортежей: он определяет 7 кортежей, третий по седьмой компонент которого содержит данные генеральной совокупности для 1860–1900, вложенный 7 кортежей, содержащий данные генеральной совокупности для 1910–1970, а также внутренний вложенный 3-кортеж, содержащий данные о заполнении для 1980–2000.

var from1980 = Tuple.Create(1203339, 1027974, 951270);
var from1910 = new Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>> 
    (465766, 993078, 1568622, 1623452, 1849568, 1670144, 1511462, from1980);
var population = new Tuple<string, int, int, int, int, int, int,
    Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>>> 
    ("Detroit", 1860, 45619, 79577, 116340, 205876, 285704, from1910);
let from1980 = Tuple.Create(1203339, 1027974, 951270)
let from1910 = new Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>>(465766, 993078, 1568622, 1623452, 1849568, 1670144, 1511462, from1980)
let population = new Tuple<string, int, int, int, int, int, int, Tuple<int, int, int, int, int, int, int, Tuple<int, int, int>>>("Detroit", 1860, 45619, 79577, 116340, 205876, 285704, from1910)
Dim from1980 = Tuple.Create(1203339, 1027974, 951270)
Dim from1910 As New Tuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, _
    Tuple(Of Integer, Integer, Integer)) _
    (465766, 993078, 1568622, 1623452, 1849568, 1670144, 1511462, from1980)
Dim population As New Tuple(Of String, Integer, Integer, Integer, Integer, Integer, Integer, _ 
    Tuple(Of Integer, Integer, Integer, Integer, Integer, Integer, Integer, Tuple(Of Integer, Integer, Integer))) _
    ("Detroit", 1860, 45619, 79577, 116340, 205876, 285704, from1910)

Комментарии

Статический Tuple.Create метод также можно использовать для создания экземпляра объекта 8 кортежей (octuple), не указывая явным образом типы его компонентов. В следующем примере метод используется Tuple.Create для создания экземпляра объекта из 8 кортежей, содержащего простые числа, которые меньше 20.

var primes = Tuple.Create(2, 3, 5, 7, 11, 13, 17, 19);
Console.WriteLine("Prime numbers less than 20: " + 
                  "{0}, {1}, {2}, {3}, {4}, {5}, {6}, and {7}",
                  primes.Item1, primes.Item2, primes.Item3, 
                  primes.Item4, primes.Item5, primes.Item6,
                  primes.Item7, primes.Rest.Item1);
// The example displays the following output:
//    Prime numbers less than 20: 2, 3, 5, 7, 11, 13, 17, and 19
open System

let primes = Tuple.Create(2, 3, 5, 7, 11, 13, 17, 19)
printfn $"Prime numbers less than 20: {primes.Item1}, {primes.Item2}, {primes.Item3}, {primes.Item4}, {primes.Item5}, {primes.Item6}, {primes.Item7}, and {primes.Rest.Item1}"
//    Prime numbers less than 20: 2, 3, 5, 7, 11, 13, 17, and 19
Dim primes = Tuple.Create(2, 3, 5, 7, 11, 13, 17, 19)
Console.WriteLine("Prime numbers less than 20: " + 
                  "{0}, {1}, {2}, {3}, {4}, {5}, {6}, and {7}",
                  primes.Item1, primes.Item2, primes.Item3, 
                  primes.Item4, primes.Item5, primes.Item6,
                  primes.Item7, primes.Rest.Item1)
' The example displays the following output:
'     Prime numbers less than 20: 2, 3, 5, 7, 11, 13, 17, and 19

Это эквивалентно следующему вызову конструктора Tuple<T1,T2,T3,T4,T5,T6,T7> класса.

var primes = new Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32,  
             Tuple<Int32>> (2, 3, 5, 7, 11, 13, 17, new Tuple<Int32>(19));
let primes = new Tuple<Int32, Int32, Int32, Int32, Int32, Int32, Int32,  
               Tuple<Int32>> (2, 3, 5, 7, 11, 13, 17, new Tuple<Int32>(19))
Dim primes = New Tuple(Of Int32, Int32, Int32, Int32, Int32, Int32, Int32, _ 
             Tuple(Of Int32))(2, 3, 5, 7, 11, 13, 17, New Tuple(Of Int32)(19))

Однако статический Tuple.Create метод нельзя использовать для создания объекта кортежа с более чем восемью компонентами.

При использовании конструктора Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> для создания n-кортежа с восемью или более компонентами используется rest параметр для создания вложенного n-кортежа, имеющего от одного до семи компонентов. Используя последовательные уровни вложения, можно создать n-кортеж с практически неограниченным количеством компонентов. Например, чтобы создать 25 кортежей, создайте экземпляр Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> объекта с тремя уровнями вложения следующим образом:

  • Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> Внешний объект содержит первый–седьмой компонент. Его Rest свойство предоставляет доступ к объекту Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> на первом уровне вложения.

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

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

  • Самый внутренний кортеж — это Tuple<T1,T2,T3,T4> объект, содержащий двадцать секунду до двадцать пятого компонента.

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

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