Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje n-řazenou kolekci členů, kde n je 8 nebo větší.
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í komponenty řazené kolekce členů.
- T2
Typ druhé komponenty řazené kolekce členů.
- T3
Typ třetí komponenty řazené kolekce členů.
- T4
Typ čtvrté komponenty řazené kolekce členů.
- T5
Typ páté komponenty řazené kolekce členů.
- T6
Typ šesté součásti řazené kolekce členů.
- T7
Typ sedmé součásti řazené kolekce členů.
- TRest
Libovolný obecný Tuple objekt, který definuje typy zbývajících součástí ř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á má určitý počet a posloupnost hodnot. Třída Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> představuje n-řazenou kolekci členů, která má osm nebo více součástí.
Vytvoření instance objektu Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> 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 prime čísla, která jsou menší než 20. Všimněte si, že používá odvození typu k určení typu každé součásti.
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 n-řazené objektu 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 pro vytváření třídy nepodporují vytváření Tuple objektů s více než osmi komponentami.
Chcete-li 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 definující osmé až n. součásti ř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 údaje o populaci města Detroit, Michigan, pro každý národní sčítání lidu z roku 1860 do roku 2000. První součástí ř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 na počátečním datu. Každá další komponenta poskytuje populaci v desetiletých intervalech. 17-řazená kolekce členů je vytvořena 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 parametru rest 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 rest parametru 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 Item1pro čtení , Item2, Item3, Item4, , Item5Item6a Item7 vlastností instance. Všechny další komponenty jsou vnořené a lze je Rest z vlastnosti načíst. V předchozím příkladu načtou Item1 vlastnosti první Item7 až sedmé součásti řazené kolekce členů. Osmé až čtrnácté komponenty jsou obsaženy v řazené kolekci členů, která je vnořena 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ů, která je vnořena na třetí úrovni, a jsou reprezentovány vlastnostmi Rest.Rest.Item1 i když Rest.Rest.Item3 .
Řazené kolekce členů se běžně používají čtyřmi různými způsoby:
Představuje jednu sadu dat. Například řazená kolekce členů může představovat záznam databáze a její komponenty mohou představovat jednotlivá pole záznamu.
Pro zajištění snadného přístupu k datové sadě a manipulaci s nimi.
Chcete-li vrátit více hodnot z metody bez použití
outparametrů (v jazyce C#) neboByRefparametrů (v jazyce Visual Basic). Například předchozí příklad vrátí vypočítanou statistiku spolu s názvem města v objektu Tuple<T1,T2,T3,T4,T5,T6,T7> .Předání více hodnot metodě prostřednictvím jednoho parametru. Například Thread.Start(Object) metoda má jeden parametr, který umožňuje zadat jednu hodnotu metodě, kterou vlákno spouští při spuštění. Pokud jako argument metody zadáte Tuple<T1,T2,T3,T4,T5,T6,T7> objekt, můžete zadat spouštěcí rutinu vlákna se sedmi položkami dat.
Konstruktory
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
| 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 aktuálního Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objektu šestá komponenta. |
| Item7 |
Získá hodnotu Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> aktuálního objektu sedmá komponenta. |
| Rest |
Získá zbývající součásti aktuálního Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objektu. |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Vrátí hodnotu, která urč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 pro aktuální Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objekt. |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního 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í
| Name | Description |
|---|---|
| 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é urč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 se zadaným objektem pomocí zadaného porovnávače a vrátí celé číslo, které urč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á urč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 pro aktuální Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> objekt pomocí zadané výpočetní metody. |
| ITuple.Item[Int32] |
Získá hodnotu zadaného |
| ITuple.Length |
Získá počet prvků v . |