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> объект, содержащий двадцать секунду до двадцать пятого компонента.