Tento článek byl přeložený strojově. Pokud chcete zobrazit článek v angličtině, zaškrtněte políčko Angličtina. Anglickou verzi článku můžete také zobrazit v místním okně přesunutím ukazatele myši nad text.
Překlad
Angličtina

Třída Tuple<T1, T2>

.NET Framework (current version)
 

Publikováno: srpen 2016

Představuje 2 řazené kolekce členů nebo pár.

Obor názvů:   System
Sestavení:  mscorlib (v mscorlib.dll)

System.Object
  System.Tuple<T1, T2>

[SerializableAttribute]
public class Tuple<T1, T2> : IStructuralEquatable, IStructuralComparable, 
	IComparable

Parametry typu

T1

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

T2

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

NázevPopis
System_CAPS_pubmethodTuple<T1, T2>(T1, T2)

Inicializuje novou instanci Tuple<T1, T2> třídy.

NázevPopis
System_CAPS_pubpropertyItem1

Získá hodnotu aktuálního Tuple<T1, T2> první komponenta objektu.

System_CAPS_pubpropertyItem2

Získá hodnotu aktuálního Tuple<T1, T2> druhé součásti objektu.

NázevPopis
System_CAPS_pubmethodEquals(Object)

Vrátí hodnotu, která označuje, zda aktuální Tuple<T1, T2> objektu je rovna zadanému objektu.(Přepisuje Object.Equals(Object).)

System_CAPS_protmethodFinalize()

Umožňuje objektu pokusit se uvolnit prostředky a provést další operace vyčištění předtím, než je odstraněn při uvolňování paměti.

(Zděděno z Object.)

System_CAPS_pubmethodGetHashCode()

Vrátí hodnotu hash pro aktuální Tuple<T1, T2> objektu.(Přepisuje Object.GetHashCode().)

System_CAPS_pubmethodGetType()

Získá Type aktuální instance.(Zděděno z Object.)

System_CAPS_protmethodMemberwiseClone()

Vytvoří mělká kopie aktuálního Object.(Zděděno z Object.)

System_CAPS_pubmethodToString()

Vrátí řetězec, který představuje hodnotu tohoto Tuple<T1, T2> instance.(Přepisuje Object.ToString().)

NázevPopis
System_CAPS_pubinterfaceSystem_CAPS_privmethodIStructuralComparable.CompareTo(Object, IComparer)

Porovná aktuální Tuple<T1, T2> objekt, který má zadaný objekt pomocí zadaná porovnávací a vrátí celé číslo, které označuje, zda je aktuální objekt před, po nebo ve stejné pozici jako zadaný objekt v pořadí řazení.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStructuralEquatable.Equals(Object, IEqualityComparer)

Vrátí hodnotu, která označuje, zda aktuální Tuple<T1, T2> objektu je rovna zadanému objektu podle zadané porovnávací metody.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStructuralEquatable.GetHashCode(IEqualityComparer)

Vypočítá kód hash pro aktuální Tuple<T1, T2> objektu pomocí zadané výpočetní metody.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIComparable.CompareTo(Object)

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

Řazené kolekce členů je datová struktura, která obsahuje určitý počet a pořadí hodnot. Tuple<T1, T2> Třída představuje 2 řazené kolekce členů nebo pár, který je řazené kolekce členů, která obsahuje dvě součásti. 2-n-tice je podobný KeyValuePair<TKey, TValue> struktury.

Můžete vytvořit instanci Tuple<T1, T2> objektu voláním buď Tuple<T1, T2> konstruktoru nebo statické Tuple.Create<T1, T2>(T1, T2) Metoda. Hodnoty řazené kolekce členů složek můžete načíst pomocí jen pro čtení Item1 a Item2 Vlastnosti instance.

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

  • Chcete-li představují jednu sadu dat. Například řazená kolekce členů může představovat záznam v databázi a její součásti mohou představovat pole tento záznam.

  • Chcete-li poskytují snadný přístup k a manipulaci s, datové sady. Následující příklad definuje pole Tuple<T1, T2> objekty, které obsahují jména studentů a jejich odpovídající testu skóre. Poté iteruje pole pro výpočet skóre střední testu.

    using System;
    
    public class Example
    {
       public static void Main()
       {
          Tuple<string, Nullable<int>>[] scores = 
                        { new Tuple<string, Nullable<int>>("Jack", 78),
                          new Tuple<string, Nullable<int>>("Abbey", 92), 
                          new Tuple<string, Nullable<int>>("Dave", 88),
                          new Tuple<string, Nullable<int>>("Sam", 91), 
                          new Tuple<string, Nullable<int>>("Ed", null),
                          new Tuple<string, Nullable<int>>("Penelope", 82),
                          new Tuple<string, Nullable<int>>("Linda", 99),
                          new Tuple<string, Nullable<int>>("Judith", 84) };
          int number;
          double mean = ComputeMean(scores, out number);
          Console.WriteLine("Average test score: {0:N2} (n={1})", mean, number);
       }
    
       private static double ComputeMean(Tuple<string, Nullable<int>>[] scores, out int n) 
       {
          n = 0;      
          int sum = 0;
          foreach (var score in scores)
          {
             if (score.Item2.HasValue)
             { 
                n += 1;
                sum += score.Item2.Value;
             }
          }     
          if (n > 0)
             return sum / (double) n;
          else
             return 0;
       }
    }
    // The example displays the following output:
    //       Average test score: 88 (n=7)
    
  • Chcete-li vrátit více hodnot z metody bez použití out Parametry (v jazyce C#) nebo ByRef Parametry (v jazyce Visual Basic). Například následující příklad používá Tuple<T1, T2> objekt, který chcete vrátit podíl a zbytek po dělení, které jsou výsledkem celočíselné dělení.

    using System;
    
    public class Class1
    {
       public static void Main()
       {
          int dividend, divisor;
          Tuple<int, int> result;
    
          dividend = 136945; divisor = 178;
          result = IntegerDivide(dividend, divisor);
          if (result != null)
             Console.WriteLine(@"{0} \ {1} = {2}, remainder {3}", 
                               dividend, divisor, result.Item1, result.Item2);
          else
             Console.WriteLine(@"{0} \ {1} = <Error>", dividend, divisor);
    
          dividend = Int32.MaxValue; divisor = -2073;
          result = IntegerDivide(dividend, divisor);
          if (result != null)
             Console.WriteLine(@"{0} \ {1} = {2}, remainder {3}", 
                               dividend, divisor, result.Item1, result.Item2);
          else
             Console.WriteLine(@"{0} \ {1} = <Error>", dividend, divisor);
       }
    
       private static Tuple<int, int> IntegerDivide(int dividend, int divisor)
       {
          try {
             int remainder;
             int quotient = Math.DivRem(dividend, divisor, out remainder);
             return new Tuple<int, int>(quotient, remainder);
          }   
          catch (DivideByZeroException) {
             return null;
          }      
       }
    }
    // The example displays the following output:
    //       136945 \ 178 = 769, remainder 63
    //       2147483647 \ -2073 = -1035930, remainder 757
    
  • Pro předání více hodnot metodě prostřednictvím jediného parametru. Například Thread.Start(Object) Metoda má jeden parametr, který umožňuje zadat jednu hodnotu na metodu, která vlákno provede při spuštění. Pokud zadáte Tuple<T1, T2> objektu jako argument metody lze zadat vlákna spouštěcí rutiny se dvěma položkami data.

Univerzální platforma Windows
K dispozici od 8
.NET Framework
K dispozici od 4.0
Přenosná knihovna tříd
Podporováno v: přenosné platformy .NET
Silverlight
K dispozici od 4.0
Windows Phone Silverlight
K dispozici od 8.0
Windows Phone
K dispozici od 8.1

Všechny veřejné statické členy ( Sdílené v jazyce Visual Basic) tohoto typu mají bezpečný přístup z více vláken. U členů instancí není bezpečný přístup z více vláken zaručen.

Zpět na začátek
Zobrazit: