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


Tuple Класс

Определение

Предоставляет статические методы для создания объектов кортежей.

public ref class Tuple abstract sealed
public static class Tuple
type Tuple = class
Public Class Tuple
Наследование
Tuple

Примеры

В следующем примере создается кортеж размером 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

Комментарии

Кортеж — это структура данных, которая содержит определенное количество и последовательность элементов. Примером кортежа является структура данных с тремя элементами (3 кортежа или тройной), которая используется для хранения идентификатора, например имени человека в первом элементе, года во втором элементе и дохода пользователя за этот год в третьем элементе. Платформа .NET Framework напрямую поддерживает кортежи с одним-семью элементами. Кроме того, можно создавать кортежи из восьми или более элементов, вложении объектов кортежей Rest в свойство Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> объекта .

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

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

  • Для обеспечения простого доступа к набору данных и управления ими.

  • Для возврата нескольких значений из метода без использования out параметров (в C#) или ByRef параметров (в Visual Basic).

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

Сам Tuple класс не представляет кортеж. Вместо этого это класс, предоставляющий статические методы для создания экземпляров типов кортежей, поддерживаемых платформа .NET Framework. Он предоставляет вспомогательные методы, которые можно вызывать для создания экземпляров объектов кортежей без необходимости явно указывать тип каждого компонента кортежа.

Хотя вы можете создать экземпляр класса кортежа, вызвав его конструктор класса, код для этого может быть громоздким. В следующем примере конструктор класса используется для создания кортежа из 7 кортежей или перегородок, содержащих данные о населении нью-йорка для каждой переписи с 1950 по 2000 год.

// Create a 7-tuple.
var population = new Tuple<string, int, int, int, int, int, int>(
                           "New York", 7891957, 7781984, 
                           7894862, 7071639, 7322564, 8008278);
// Display the first and last elements.
Console.WriteLine("Population of {0} in 2000: {1:N0}",
                  population.Item1, population.Item7);
// The example displays the following output:
//       Population of New York in 2000: 8,008,278
// Create a 7-tuple.
let population = Tuple<string, int, int, int, int, int, int>(
                            "New York", 7891957, 7781984, 
                            7894862, 7071639, 7322564, 8008278)
// Display the first and last elements.
printfn $"Population of {population.Item1} in 2000: {population.Item7:N0}"
// The example displays the following output:
//       Population of New York in 2000: 8,008,278
' Create a 7-tuple.
Dim population As New Tuple(Of String, Integer, Integer, Integer, Integer, Integer, Integer) _
                           ("New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
' Display the first and last elements.
Console.WriteLine("Population of {0} in 2000: {1:N0}",
                  population.Item1, population.Item7)
' The example displays the following output:
'        Population of New York in 2000: 8,008,278

Создание того же объекта кортежа с помощью вспомогательного метода проще, как показано в следующем примере.

// Create a 7-tuple.
var population = Tuple.Create("New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278);
// Display the first and last elements.
Console.WriteLine("Population of {0} in 2000: {1:N0}",
                  population.Item1, population.Item7);
// The example displays the following output:
//       Population of New York in 2000: 8,008,278
// Create a 7-tuple.
let population = Tuple.Create("New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
// Display the first and last elements.
printfn $"Population of {population.Item1} in 2000: {population.Item7:N0}"
// The example displays the following output:
//       Population of New York in 2000: 8,008,278
' Create a 7-tuple.
Dim population = Tuple.Create("New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278)
' Display the first and last elements.
Console.WriteLine("Population of {0} in 2000: {1:N0}",
                  population.Item1, population.Item7)
' The example displays the following output:
'        Population of New York in 2000: 8,008,278

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

Примечание

Дополнительные сведения и примеры использования кортежей см. в документации по отдельным типам кортежей в платформа .NET Framework. Они перечислены в разделе См. также в конце этой статьи.

Методы

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

Создает новый кортеж из восьми компонентов.

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

Создает новый кортеж из семи компонентов.

Create<T1,T2,T3,T4,T5,T6>(T1, T2, T3, T4, T5, T6)

Создает новый кортеж из шести компонентов.

Create<T1,T2,T3,T4,T5>(T1, T2, T3, T4, T5)

Создает новый кортеж из пяти компонентов.

Create<T1,T2,T3,T4>(T1, T2, T3, T4)

Создает новый кортеж из четырех компонентов.

Create<T1,T2,T3>(T1, T2, T3)

Создает новый кортеж из трех компонентов.

Create<T1,T2>(T1, T2)

Создает новый кортеж из двух компонентов (пару).

Create<T1>(T1)

Создает новый кортеж из одного компонента.

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

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