Tuple<T1,T2,T3>.Item1 Egenskap

Definition

Hämtar värdet för det aktuella Tuple<T1,T2,T3> objektets första komponent.

public:
 property T1 Item1 { T1 get(); };
public T1 Item1 { get; }
member this.Item1 : 'T1
Public ReadOnly Property Item1 As T1

Egenskapsvärde

T1

Värdet för det aktuella Tuple<T1,T2,T3> objektets första komponent.

Exempel

I följande exempel definieras en matris med Tuple<T1,T2,T3> objekt som innehåller namnen på eleverna, deras genomsnittliga testresultat och antalet tester som gjorts. Matrisen skickas till ComputeStatistics metoden, som beräknar medelvärdet, standardavvikelsen och antalet fall som statistiken beräknas från. Dessa värden lagras i objektet Tuple<T1,T2,T3> som returneras av ComputeStatistics metoden. Egenskapen Item1 innehåller antalet ärenden.

using System;

public class Example
{
   public static void Main()
   {
      Tuple<string, double, int>[] scores = 
                    { Tuple.Create("Jack", 78.8, 8),
                      Tuple.Create("Abbey", 92.1, 9), 
                      Tuple.Create("Dave", 88.3, 9),
                      Tuple.Create("Sam", 91.7, 8), 
                      Tuple.Create("Ed", 71.2, 5),
                      Tuple.Create("Penelope", 82.9, 8),
                      Tuple.Create("Linda", 99.0, 9),
                      Tuple.Create("Judith", 84.3, 9) };
      var result = ComputeStatistics(scores);
      Console.WriteLine("Mean score: {0:N2} (SD={1:N2}) (n={2})", 
                        result.Item2, result.Item3, result.Item1);
   }

   private static Tuple<int, double, double> ComputeStatistics(Tuple<string, double, int>[] scores) 
   {
      int n = 0;
      double sum = 0;

      // Compute the mean.
      foreach (var score in scores)
      {
         n += score.Item3;
         sum += score.Item2 * score.Item3;
      }
      double mean = sum / n;
      
      // Compute the standard deviation.
      double ss = 0;
      foreach (var score in scores)
      {
         ss = Math.Pow(score.Item2 - mean, 2);
      }
      double sd = Math.Sqrt(ss/scores.Length);
      return Tuple.Create(scores.Length, mean, sd);
   }
}
// The example displays the following output:
//       Mean score: 87.02 (SD=0.96) (n=8)
open System

let computeStatistics (scores: Tuple<string, double, int>[]) = 
    let mutable n = 0
    let mutable sum = 0.

    // Compute the mean.
    for score in scores do
        n <- n + score.Item3
        sum <- sum + score.Item2 * double score.Item3
    let mean = sum / double n
    
    // Compute the standard deviation.
    let mutable ss = 0.
    for score in scores do
        ss <- (score.Item2 - mean) ** 2.
    let sd = sqrt (ss / double scores.Length)
    Tuple.Create(scores.Length, mean, sd)

let scores = 
    [| Tuple.Create("Jack", 78.8, 8)
       Tuple.Create("Abbey", 92.1, 9) 
       Tuple.Create("Dave", 88.3, 9)
       Tuple.Create("Sam", 91.7, 8) 
       Tuple.Create("Ed", 71.2, 5)
       Tuple.Create("Penelope", 82.9, 8)
       Tuple.Create("Linda", 99.0, 9)
       Tuple.Create("Judith", 84.3, 9) |]
let result = computeStatistics scores
printfn $"Mean score: {result.Item2:N2} (SD={result.Item3:N2}) (n={result.Item1})"
// The example displays the following output:
//       Mean score: 87.02 (SD=0.96) (n=8)
Module Example
   Public Sub Main()
      Dim scores() = 
                      { Tuple.Create("Jack", 78.8, 8),
                        Tuple.Create("Abbey", 92.1, 9), 
                        Tuple.Create("Dave", 88.3, 9),
                        Tuple.Create("Sam", 91.7, 8), 
                        Tuple.Create("Ed", 71.2, 5),
                        Tuple.Create("Penelope", 82.9, 8),
                        Tuple.Create("Linda", 99.0, 9),
                        Tuple.Create("Judith", 84.3, 9) }
      Dim result = ComputeStatistics(scores)
      Console.WriteLine("Mean score: {0:N2} (SD={1:N2}) (n={2})", 
                        result.Item2, result.Item3, result.Item1)
   End Sub
   
   Private Function ComputeStatistics(scores() As Tuple(Of String, Double, Integer)) _ 
                                As Tuple(Of Integer, Double, Double)
      Dim n As Integer = 0      
      Dim sum As Double = 0
      
      ' Compute the mean.
      For Each score In scores
         n+= score.Item3 
         sum += score.Item2 * score.Item3
      Next     
      Dim mean As Double = sum / n

      ' Compute the standard deviation.
      Dim ss As Double = 0
      For Each score In scores
         ss = Math.Pow(score.Item2 - mean, 2)
      Next
      Dim sd As Double = Math.Sqrt(ss/scores.Length)
      Return Tuple.Create(scores.Length, mean, sd)
   End Function
End Module
' The example displays the following output:
'       Mean score: 87.02 (SD=0.96) (n=8)

Kommentarer

Du kan dynamiskt fastställa komponenttypen Item1 på något av två sätt:

  • Genom att anropa GetType metoden för det värde som returneras av Item1 egenskapen.

  • Genom att hämta objektet Type som representerar Tuple<T1,T2,T3> objektet och hämta det första elementet från matrisen som returneras av dess Type.GetGenericArguments metod.

Gäller för