Bagikan melalui


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

Definisi

Mewakili n-tuple, di mana n adalah 8 atau lebih besar.

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

Jenis parameter

T1

Jenis komponen pertama tuple.

T2

Jenis komponen kedua tuple.

T3

Jenis komponen ketiga tuple.

T4

Jenis komponen keempat tuple.

T5

Jenis komponen kelima tuple.

T6

Jenis komponen keenam tuple.

T7

Jenis komponen ketujuh tuple.

TRest

Objek generik Tuple apa pun yang mendefinisikan jenis komponen tuple yang tersisa.

Warisan
Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>
Atribut
Penerapan

Keterangan

Tuple adalah struktur data yang memiliki angka dan urutan nilai tertentu. Kelas mewakili Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>n-tuple yang memiliki delapan komponen atau lebih.

Anda dapat membuat Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> instans objek dengan tepat delapan komponen dengan memanggil metode statis Tuple.Create . Contoh berikut membuat 8 tuple (octuple) yang berisi bilangan prima yang kurang dari 20. Perhatikan bahwa ia menggunakan inferensi jenis untuk menentukan jenis setiap komponen.

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

Anda juga dapat membuat instans objek n-tuple dengan delapan komponen atau lebih dengan memanggil Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> konstruktor. Contoh berikut menggunakan Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> konstruktor untuk membuat 8 tuple yang setara dengan tuple yang dibuat dalam contoh sebelumnya.

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

Nota

Untuk membuat n-tuple dengan sembilan komponen atau lebih, Anda harus memanggil Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> konstruktor. Metode pabrik statis kelas Tuple tidak mendukung pembuatan Tuple objek dengan lebih dari delapan komponen.

Untuk membuat instans n-tuple yang memiliki delapan komponen atau lebih dengan Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> konstruktor, Anda menyediakan objek generik Tuple sebagai rest parameter untuk menentukan komponen kedelapan hingga nth dari tuple. Dengan menyarangkan objek generik Tuple dengan cara ini, Anda dapat membuat tuple yang tidak memiliki batasan praktis pada jumlah komponennya.

Contoh berikut membuat 17 tuple yang berisi data populasi untuk kota Detroit, Michigan, untuk setiap sensus nasional dari 1860 hingga 2000. Komponen pertama dari tuple adalah nama kota. Komponen kedua adalah tanggal mulai seri data, dan komponen ketiga adalah populasi pada tanggal mulai. Setiap komponen berikutnya menyediakan populasi pada interval dekade. 17-tuple dibuat dengan menyarangkan Tuple<T1,T2,T3> objek di dalam Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objek. (Artinya, Tuple<T1,T2,T3> objek disediakan sebagai nilai rest parameter di Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> konstruktor kelas.) Objek ini Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> , pada gilirannya, bersarang di objek luar Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> . (Artinya, Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objek disediakan sebagai nilai rest parameter di konstruktor kelas objek luar Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> .)

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)

Anda dapat mengambil nilai tujuh komponen pertama tuple dengan menggunakan properti instans baca-saja Item1, , Item2, Item3Item5Item4, Item6, , dan .Item7 Komponen tambahan apa pun ditumpuk dan dapat diambil dari Rest properti . Dalam contoh sebelumnya, Item1 properti melalui Item7 mengambil komponen pertama hingga ketujuh tuple. Komponen kedelapan hingga empat belas terkandung dalam tupel yang bersarang pada tingkat kedua, dan diwakili oleh Rest.Item1 properti melalui Rest.Item7 . Komponen kelima belas hingga tujuh belas terkandung dalam tupel yang bersarang pada tingkat ketiga, dan diwakili oleh Rest.Rest.Item1 properti sekalipun Rest.Rest.Item3 .

Tuple umumnya digunakan dengan empat cara berbeda:

  • Untuk mewakili satu set data. Misalnya, tuple dapat mewakili rekaman database, dan komponennya dapat mewakili bidang rekaman individual.

  • Untuk menyediakan akses mudah ke, dan manipulasi, himpunan data.

  • Untuk mengembalikan beberapa nilai dari metode tanpa menggunakan out parameter (dalam C#) atau ByRef parameter (di Visual Basic). Misalnya, contoh sebelumnya mengembalikan statistik komputasinya, bersama dengan nama kota, dalam objek Tuple<T1,T2,T3,T4,T5,T6,T7> .

  • Untuk meneruskan beberapa nilai ke metode melalui satu parameter. Misalnya, Thread.Start(Object) metode ini memiliki satu parameter yang memungkinkan Anda menyediakan satu nilai ke metode yang dijalankan utas saat startup. Jika Anda menyediakan Tuple<T1,T2,T3,T4,T5,T6,T7> objek sebagai argumen metode, Anda dapat menyediakan rutinitas startup utas dengan tujuh item data.

Konstruktor

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

Menginisialisasi instans baru dari kelas Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>.

Properti

Nama Deskripsi
Item1

Mendapatkan nilai komponen pertama objek saat ini Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> .

Item2

Mendapatkan nilai komponen kedua objek saat ini Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> .

Item3

Mendapatkan nilai komponen ketiga objek saat ini Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> .

Item4

Mendapatkan nilai komponen keempat objek saat ini Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> .

Item5

Mendapatkan nilai komponen kelima objek saat ini Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> .

Item6

Mendapatkan nilai komponen keenam objek saat ini Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> .

Item7

Mendapatkan nilai komponen ketujuh objek saat ini Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> .

Rest

Mendapatkan komponen objek saat ini Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> yang tersisa.

Metode

Nama Deskripsi
Equals(Object)

Mengembalikan nilai yang menunjukkan apakah objek saat ini Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> sama dengan objek tertentu.

GetHashCode()

Menghitung kode hash untuk objek saat ini Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> .

GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili nilai instans ini Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> .

Implementasi Antarmuka Eksplisit

Nama Deskripsi
IComparable.CompareTo(Object)

Membandingkan objek saat ini Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> dengan objek tertentu dan mengembalikan bilangan bulat yang menunjukkan apakah objek saat ini sebelum, sesudah, atau dalam posisi yang sama dengan objek yang ditentukan dalam urutan pengurutan.

IStructuralComparable.CompareTo(Object, IComparer)

Membandingkan objek saat ini Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> dengan objek tertentu dengan menggunakan pembanding tertentu dan mengembalikan bilangan bulat yang menunjukkan apakah objek saat ini adalah sebelum, sesudah, atau dalam posisi yang sama dengan objek yang ditentukan dalam urutan pengurutan.

IStructuralEquatable.Equals(Object, IEqualityComparer)

Mengembalikan nilai yang menunjukkan apakah objek saat ini Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> sama dengan objek tertentu berdasarkan metode perbandingan yang ditentukan.

IStructuralEquatable.GetHashCode(IEqualityComparer)

Menghitung kode hash untuk objek saat ini Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> dengan menggunakan metode komputasi tertentu.

ITuple.Item[Int32]

Mendapatkan nilai elemen yang ditentukan Tuple .

ITuple.Length

Mendapatkan jumlah elemen dalam Tuple.

Berlaku untuk

Lihat juga