다음을 통해 공유


Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 클래스

정의

n 튜플을 나타냅니다. 여기에서 n 은 8 이상입니다.

generic <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename TRest>
public ref class Tuple : IComparable, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable
generic <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename TRest>
public ref class Tuple : IComparable, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable, System::Runtime::CompilerServices::ITuple
public class Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
public class Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple
[System.Serializable]
public class Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> : IComparable, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7, 'Rest> = class
    interface IStructuralComparable
    interface IStructuralEquatable
    interface IComparable
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7, 'Rest> = class
    interface IStructuralComparable
    interface IStructuralEquatable
    interface IComparable
    interface ITuple
[<System.Serializable>]
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7, 'Rest> = class
    interface IStructuralEquatable
    interface IStructuralComparable
    interface IComparable
[<System.Serializable>]
type Tuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7, 'Rest> = class
    interface IStructuralEquatable
    interface IStructuralComparable
    interface IComparable
    interface ITuple
Public Class Tuple(Of T1, T2, T3, T4, T5, T6, T7, TRest)
Implements IComparable, IStructuralComparable, IStructuralEquatable
Public Class Tuple(Of T1, T2, T3, T4, T5, T6, T7, TRest)
Implements IComparable, IStructuralComparable, IStructuralEquatable, ITuple

형식 매개 변수

T1

튜플의 첫 번째 구성 요소 형식입니다.

T2

튜플의 두 번째 구성 요소 형식입니다.

T3

튜플의 세 번째 구성 요소 형식입니다.

T4

튜플의 네 번째 구성 요소 형식입니다.

T5

튜플의 다섯 번째 구성 요소 형식입니다.

T6

튜플의 여섯 번째 구성 요소 형식입니다.

T7

튜플의 일곱 번째 구성 요소 형식입니다.

TRest

튜플의 나머지 구성 요소 형식을 정의하는 제네릭 Tuple 개체입니다.

상속
Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>
특성
구현

설명

튜플은 값의 특정 수와 시퀀스를 포함하는 데이터 구조입니다. 클래스는 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 8개 이상의 구성 요소가 있는 n 튜플을 나타냅니다.

정적 Tuple.Create 메서드를 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 호출하여 정확히 8개의 구성 요소로 개체를 인스턴스화할 수 있습니다. 다음 예제에서는 20보다 작은 소수를 포함하는 8개의 튜플(8진수)을 만듭니다. 형식 유추를 사용하여 각 구성 요소의 형식을 결정합니다.

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

생성자를 호출하여 8개 이상의 구성 요소로 n 튜플 개체를 인스턴스화할 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 수도 있습니다. 다음 예제에서는 생성자를 사용하여 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 이전 예제에서 만든 튜플과 동일한 8 튜플을 만듭니다.

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))

참고

9개 이상의 구성 요소가 있는 n 튜플을 만들려면 생성자를 호출 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 해야 합니다. 클래스의 Tuple 정적 팩터리 메서드는 8개 이상의 구성 요소가 있는 개체 만들기 Tuple 를 지원하지 않습니다.

생성자를 사용하여 8개 이상의 구성 요소가 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 있는 n 튜플을 인스턴스화하려면 제네릭 Tuple 개체를 매개 변수로 rest 제공하여 튜플의 8번째에서 n 번째 구성 요소를 정의합니다. 이러한 방식으로 제네릭 Tuple 개체를 중첩하면 해당 구성 요소의 수에 실질적인 제한이 없는 튜플을 만들 수 있습니다.

다음 예제에서는 1860년부터 2000년까지의 각 국가 인구 조사에 대해 미시간 주 디트로이트 시의 인구 데이터를 포함하는 17개의 튜플을 만듭니다. 튜플의 첫 번째 구성 요소는 도시 이름입니다. 두 번째 구성 요소는 데이터 계열의 시작 날짜이고, 세 번째 구성 요소는 시작 날짜의 모집단입니다. 이후의 각 구성 요소는 10년 간격으로 모집단을 제공합니다. 17 튜플은 개체 내에 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 개체를 Tuple<T1,T2,T3> 중첩하여 만듭니다. 즉, Tuple<T1,T2,T3> 개체는 클래스 생성자에서 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> 개체는 외부 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 개체의 rest 클래스 생성자에서 매개 변수의 값으로 제공됩니다.

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)

읽기 전용Item1, Item2, Item3, Item6Item4Item5Item7 및 인스턴스 속성을 사용하여 튜플의 처음 7개 구성 요소 값을 검색할 수 있습니다. 추가 구성 요소는 중첩되며 속성에서 Rest 검색할 수 있습니다. 이전 예제에서 through Item7 속성은 Item1 튜플의 첫 번째-일곱 번째 구성 요소를 검색합니다. 8~14번째 구성 요소는 두 번째 수준에서 중첩되고 through Rest.Item7 속성으로 표현되는 튜플에 Rest.Item1 포함됩니다. 15-17번째 구성 요소는 세 번째 수준에 중첩된 튜플에 포함되며 though Rest.Rest.Item3 속성으로 Rest.Rest.Item1 표시됩니다.

튜플은 일반적으로 다음과 같은 네 가지 방법으로 사용됩니다.

  • 단일 데이터 집합을 나타냅니다. 예를 들어 튜플은 데이터베이스 레코드를 나타낼 수 있으며 해당 구성 요소는 레코드의 개별 필드를 나타낼 수 있습니다.

  • 데이터 집합에 쉽게 액세스하고 조작할 수 있도록 합니다.

  • 매개 변수(C#) 또는 ByRef 매개 변수(Visual Basic)를 사용하지 out 않고 메서드에서 여러 값을 반환합니다. 예를 들어 이전 예제에서는 개체에 도시 이름과 함께 계산된 통계를 Tuple<T1,T2,T3,T4,T5,T6,T7> 반환합니다.

  • 단일 매개 변수를 통해 메서드에 여러 값을 전달합니다. 예를 들어 메서드에는 Thread.Start(Object) 시작 시 스레드가 실행되는 메서드에 하나의 값을 제공할 수 있는 단일 매개 변수가 있습니다. 개체를 Tuple<T1,T2,T3,T4,T5,T6,T7> 메서드 인수로 제공하는 경우 스레드의 시작 루틴에 7개의 데이터 항목을 제공할 수 있습니다.

생성자

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

Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 클래스의 새 인스턴스를 초기화합니다.

속성

Item1

현재 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 개체의 첫 번째 구성 요소 값을 가져옵니다.

Item2

현재 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 개체의 두 번째 구성 요소 값을 가져옵니다.

Item3

현재 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 개체의 세 번째 구성 요소 값을 가져옵니다.

Item4

현재 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 개체의 네 번째 구성 요소 값을 가져옵니다.

Item5

현재 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 개체의 다섯 번째 구성 요소 값을 가져옵니다.

Item6

현재 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 개체의 여섯 번째 구성 요소 값을 가져옵니다.

Item7

현재 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 개체의 일곱 번째 구성 요소 값을 가져옵니다.

Rest

현재 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 개체의 나머지 구성 요소를 가져옵니다.

메서드

Equals(Object)

현재 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 개체가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다.

GetHashCode()

현재 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 개체에 대한 해시 코드를 계산합니다.

GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
ToString()

Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 인스턴스의 값을 나타내는 문자열을 반환합니다.

명시적 인터페이스 구현

IComparable.CompareTo(Object)

현재 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 개체를 지정된 개체와 비교하고 현재 개체가 정렬 순서에 지정된 개체보다 이전인지, 이후인지 또는 같은 위치인지를 나타내는 정수를 반환합니다.

IStructuralComparable.CompareTo(Object, IComparer)

지정된 비교자를 사용하여 현재 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 개체와 지정된 개체를 비교하고 정렬 순서에서 현재 개체의 위치가 지정된 개체보다 앞인지, 뒤인지 또는 동일한지를 나타내는 정수를 반환합니다.

IStructuralEquatable.Equals(Object, IEqualityComparer)

지정된 비교 메서드를 기반으로 현재 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 개체가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다.

IStructuralEquatable.GetHashCode(IEqualityComparer)

지정된 계산 메서드를 사용하여 현재 Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 개체에 대한 해시 코드를 계산합니다.

ITuple.Item[Int32]

지정한 Tuple 요소의 값을 가져옵니다.

ITuple.Length

Tuple의 요소 수를 가져옵니다.

적용 대상

추가 정보