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


Tuple Класс

Определение

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

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

Примеры

В следующем примере создается 8-кортеж (octuple), содержащий простые числа, которые меньше 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 напрямую поддерживает кортежи с одним до семи элементов. Кроме того, можно создать кортежи из восьми или более элементов, вложенив объекты кортежей Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> в Rest свойство объекта.

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

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

  • Чтобы обеспечить простой доступ к набору данных и их обработке.

  • Чтобы возвращать несколько значений из метода без использования 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)

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

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

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

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

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

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

Создает новый кортеж 5 или квинтул.

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

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

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

Создает новый 3 кортеж или тройной.

Create<T1,T2>(T1, T2)

Создает 2-кортеж или пару.

Create<T1>(T1)

Создает новый кортеж 1 или одноэлемент.

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

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