Sdílet prostřednictvím


Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> Třída

Definice

Představuje n-řazenou kolekci členů, kde n je 8 nebo vyšší.

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

Parametry typu

T1

Typ první součásti řazené kolekce členů.

T2

Typ druhé součásti řazené kolekce členů.

T3

Typ třetí součásti řazené kolekce členů.

T4

Typ čtvrté součásti řazené kolekce členů.

T5

Typ páté součásti řazené kolekce členů.

T6

Typ šesté komponenty řazené kolekce členů.

T7

Typ sedmé komponenty řazené kolekce členů.

TRest

Jakýkoli obecný Tuple objekt, který definuje typy zbývajících komponent řazené kolekce členů.

Dědičnost
Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>
Atributy
Implementuje

Poznámky

Řazená kolekce členů je datová struktura, která obsahuje určitý počet a pořadí hodnot. Třída Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> představuje n-řazenou kolekci členů, která má osm nebo více komponent.

Objekt můžete vytvořit Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> instanci s přesně osmi komponentami voláním statické Tuple.Create metody. Následující příklad vytvoří 8 řazenou kolekci členů (octuple), která obsahuje základní čísla, která jsou menší než 20. Všimněte si, že používá odvozování typů k určení typu jednotlivých komponent.

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

Můžete také vytvořit instanci objektu n-řazené kolekce členů s osmi nebo více komponent voláním konstruktoru Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> . Následující příklad používá Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> konstruktor k vytvoření 8 řazené kolekce členů, která je ekvivalentní řazené kolekci členů vytvořené v předchozím příkladu.

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

Poznámka

Chcete-li vytvořit n-řazenou kolekci členů s devíti nebo více komponentami, je nutné volat Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> konstruktor. Statické metody objektu Tuple třídy nepodporují vytváření Tuple objektů s více než osmi komponentami.

Pokud chcete vytvořit instanci n-řazené kolekce členů, která má osm nebo více komponent s Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> konstruktorem, zadáte obecný Tuple objekt jako rest parametr pro definování osmých až nth komponent řazené kolekce členů. Vnořením obecných Tuple objektů tímto způsobem můžete vytvořit řazenou kolekci členů, která nemá žádné praktické omezení počtu jeho součástí.

Následující příklad vytvoří 17 řazenou kolekci členů, která obsahuje data o populaci města Detroit, Michigan, pro každý národní sčítání lidu od 1860 do roku 2000. První komponenta řazené kolekce členů je název města. Druhá komponenta je počáteční datum datové řady a třetí komponenta je základní soubor v počátečním datu. Každá další komponenta poskytuje populaci v desetiletích. Kolekce členů 17 se vytvoří vnořením Tuple<T1,T2,T3> objektu uvnitř objektu Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> . (To znamená, že Tuple<T1,T2,T3> objekt je zadán jako hodnota rest parametru v konstruktoru Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> třídy.) Tento Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objekt je zase vnořený do vnějšího Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objektu. (To znamená, že Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objekt je zadán jako hodnota parametru rest v konstruktoru třídy vnějšího Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objektu.)

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)

Hodnotu prvních sedmi komponent řazené kolekce členů můžete načíst pomocí vlastností jen pro Item1čtení , , Item2, Item3, Item4Item5, Item6a Item7 vlastností instance. Všechny další komponenty jsou vnořené a lze je načíst z Rest vlastnosti. V předchozím příkladu načte Item1 vlastnosti prostřednictvím Item7 první až sedmé součásti kolekce členů. Osmé až čtrnácté komponenty jsou obsaženy v řazené kolekci členů na druhé úrovni a jsou reprezentovány vlastnostmi Rest.Item1 prostřednictvím Rest.Item7 . Patnácté až sedmnácté komponenty jsou obsaženy v řazené kolekci členů na třetí úrovni a jsou reprezentovány vlastnostmiRest.Rest.Item1.Rest.Rest.Item3

Řazené kolekce členů se obvykle používají čtyřmi různými způsoby:

  • K reprezentaci jediné datové sady. Například řazená kolekce členů může představovat záznam v databázi a její součásti mohou představovat jednotlivá pole záznamu.

  • K zajištění snadného přístupu k datové sadě a manipulace s datovou sadou.

  • Pokud chcete vrátit více hodnot z metody bez použití out parametrů (v jazyce C#) nebo ByRef parametrů (v Visual Basic). Například předchozí příklad vrátí vypočítané statistiky spolu s názvem města v objektu Tuple<T1,T2,T3,T4,T5,T6,T7> .

  • Pro předání více hodnot metodě prostřednictvím jediného parametru. Thread.Start(Object) Například metoda má jeden parametr, který umožňuje zadat jednu hodnotu metodě, kterou vlákno spouští při spuštění. Pokud zadáte Tuple<T1,T2,T3,T4,T5,T6,T7> objekt jako argument metody, můžete zadat rutinu spuštění vlákna se sedmi položkami dat.

Konstruktory

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

Inicializuje novou instanci Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> třídy.

Vlastnosti

Item1

Získá hodnotu první komponenty aktuálního Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objektu.

Item2

Získá hodnotu druhé komponenty aktuálního Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objektu.

Item3

Získá hodnotu třetí komponenty aktuálního Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objektu.

Item4

Získá hodnotu čtvrté komponenty aktuálního Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objektu.

Item5

Získá hodnotu páté komponenty aktuálního Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objektu.

Item6

Získá hodnotu šesté komponenty aktuálního Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objektu.

Item7

Získá hodnotu sedmé komponenty aktuálního Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objektu.

Rest

Získá zbývající komponenty aktuálního Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objektu.

Metody

Equals(Object)

Vrátí hodnotu, která označuje, zda je aktuální Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objekt roven zadanému objektu.

GetHashCode()

Vypočítá kód hash aktuálního objektu Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> .

GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje hodnotu této Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> instance.

Explicitní implementace rozhraní

IComparable.CompareTo(Object)

Porovná aktuální Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objekt se zadaným objektem a vrátí celé číslo, které označuje, zda je aktuální objekt před, za nebo ve stejné pozici jako zadaný objekt v pořadí řazení.

IStructuralComparable.CompareTo(Object, IComparer)

Porovná aktuální Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objekt s zadaným objektem pomocí zadaného porovnávače a vrátí celé číslo, které označuje, zda je aktuální objekt před, za nebo ve stejné pozici jako zadaný objekt v pořadí řazení.

IStructuralEquatable.Equals(Object, IEqualityComparer)

Vrátí hodnotu, která označuje, zda je aktuální Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objekt roven zadanému objektu na základě zadané metody porovnání.

IStructuralEquatable.GetHashCode(IEqualityComparer)

Vypočítá kód hash aktuálního Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objektu pomocí zadané výpočetní metody.

ITuple.Item[Int32]

Získá hodnotu zadaného Tuple prvku.

ITuple.Length

Získá počet prvků v sadě Tuple.

Platí pro

Viz také