Бөлісу құралы:


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> объекту на первом уровне вложения.

  • Самый внешний вложенный объект содержит восьмой по четырнадцатый компонент, а его Rest свойство обеспечивает доступ к Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> объекту на втором уровне вложения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> кортеж — это объект, содержащий двадцать секунду до двадцать пятого компонента.

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

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