Tuple<T1,T2,T3,T4,T5,T6,T7,TRest>.Rest Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Haalt de resterende onderdelen van het huidige Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> object op.
public:
property TRest Rest { TRest get(); };
public TRest Rest { get; }
member this.Rest : 'Rest
Public ReadOnly Property Rest As TRest
Waarde van eigenschap
De waarde van de resterende onderdelen van het huidige Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> object.
Voorbeelden
In het volgende voorbeeld wordt een 17 tuple-object gemaakt dat populatiegegevens bevat voor de stad Detroit, Michigan, van 1860 tot 2000. Het zevende onderdeel van de 17-tuple is de populatie in 1900. In het voorbeeld wordt de Rest eigenschap gebruikt om de waarden van de achtste tot en met veertiende onderdelen op te halen en wordt de Rest eigenschap van het geneste Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> object gebruikt om de waarden van de resterende onderdelen op te halen.
using System;
class Example
{
static void Main(string[] args)
{
Tuple<int, int, int> 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);
Console.WriteLine("Population of {0}", population.Item1);
Console.WriteLine();
Console.WriteLine("{0,5} {1,14} {2,10}", "Year", "Population", "Change");
int year = population.Item2;
ShowPopulation(year, population.Item3);
year += 10;
ShowPopulationChange(year, population.Item4, population.Item3);
year += 10;
ShowPopulationChange(year, population.Item5, population.Item4);
year += 10;
ShowPopulationChange(year, population.Item6, population.Item5);
year += 10;
ShowPopulationChange(year, population.Item7, population.Item6);
year += 10;
ShowPopulationChange(year, population.Rest.Item1, population.Item7);
year += 10;
ShowPopulationChange(year, population.Rest.Item2, population.Rest.Item1);
year += 10;
ShowPopulationChange(year, population.Rest.Item3, population.Rest.Item2);
year += 10;
ShowPopulationChange(year, population.Rest.Item4, population.Rest.Item3);
year += 10;
ShowPopulationChange(year, population.Rest.Item5, population.Rest.Item4);
year += 10;
ShowPopulationChange(year, population.Rest.Item6, population.Rest.Item5);
year += 10;
ShowPopulationChange(year, population.Rest.Item7, population.Rest.Item6);
year += 10;
ShowPopulationChange(year, population.Rest.Rest.Item1, population.Rest.Item7);
year += 10;
ShowPopulationChange(year, population.Rest.Rest.Item2, population.Rest.Rest.Item1);
year += 10;
ShowPopulationChange(year, population.Rest.Rest.Item3, population.Rest.Rest.Item2);
}
private static void ShowPopulationChange(int year, int newPopulation, int oldPopulation)
{
Console.WriteLine("{0,5} {1,14:N0} {2,10:P2}", year, newPopulation,
((double)(newPopulation - oldPopulation) / oldPopulation) / 10);
}
private static void ShowPopulation(int year, int newPopulation)
{
Console.WriteLine("{0,5} {1,14:N0} {2,10:P2}", year, newPopulation, "n/a");
}
}
// The example displays the following output:
//
// Population of Detroit
// Year Population Change
// 1860 45,619 n/a
// 1870 79,577 7.44 %
// 1880 116,340 4.62 %
// 1890 205,876 7.70 %
// 1900 285,704 3.88 %
// 1910 465,766 6.30 %
// 1920 993,078 11.32 %
// 1930 1,568,622 5.80 %
// 1940 1,623,452 0.35 %
// 1950 1,849,568 1.39 %
// 1960 1,670,144 -0.97 %
// 1970 1,511,462 -0.95 %
// 1980 1,203,339 -2.04 %
// 1990 1,027,974 -1.46 %
// 2000 951,270 -0.75 %
let showPopulation year newPopulation =
printfn $"""{year,5} {newPopulation,14:N0} {"n/a",10:P2}"""
let showPopulationChange year newPopulation oldPopulation =
printfn $"{year,5} {newPopulation,14:N0} {(double (newPopulation - oldPopulation) / oldPopulation) / 10.,10:P2}"
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)
printfn $"Population of {population.Item1}\n"
printfn "%5s %14s %10s" "Year" "Population" "Change"
do
let year = population.Item2
showPopulation year population.Item3
let year = year + 10
showPopulationChange year population.Item4 population.Item3
let year = year + 10
showPopulationChange year population.Item5 population.Item4
let year = year + 10
showPopulationChange year population.Item6 population.Item5
let year = year + 10
showPopulationChange year population.Item7 population.Item6
let year = year + 10
showPopulationChange year population.Rest.Item1 population.Item7
let year = year + 10
showPopulationChange year population.Rest.Item2 population.Rest.Item1
let year = year + 10
showPopulationChange year population.Rest.Item3 population.Rest.Item2
let year = year + 10
showPopulationChange year population.Rest.Item4 population.Rest.Item3
let year = year + 10
showPopulationChange year population.Rest.Item5 population.Rest.Item4
let year = year + 10
showPopulationChange year population.Rest.Item6 population.Rest.Item5
let year = year + 10
showPopulationChange year population.Rest.Item7 population.Rest.Item6
let year = year + 10
showPopulationChange year population.Rest.Rest.Item1 population.Rest.Item7
let year = year + 10
showPopulationChange year population.Rest.Rest.Item2 population.Rest.Rest.Item1
let year = year + 10
showPopulationChange year population.Rest.Rest.Item3 population.Rest.Rest.Item2
// The example displays the following output:
//
// Population of Detroit
// Year Population Change
// 1860 45,619 n/a
// 1870 79,577 7.44 %
// 1880 116,340 4.62 %
// 1890 205,876 7.70 %
// 1900 285,704 3.88 %
// 1910 465,766 6.30 %
// 1920 993,078 11.32 %
// 1930 1,568,622 5.80 %
// 1940 1,623,452 0.35 %
// 1950 1,849,568 1.39 %
// 1960 1,670,144 -0.97 %
// 1970 1,511,462 -0.95 %
// 1980 1,203,339 -2.04 %
// 1990 1,027,974 -1.46 %
// 2000 951,270 -0.75 %
Module Example
Sub Main()
Dim from1980 As Tuple(Of Integer, Integer, Integer) =
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)
Console.WriteLine("Population of {0}", population.Item1)
Console.WriteLine()
Console.WriteLine("{0,5} {1,14} {2,10}", "Year", "Population", "Change")
Dim year As Integer = population.Item2
ShowPopulation(year, population.Item3)
year += 10
ShowPopulationChange(year, population.Item4, population.Item3)
year += 10
ShowPopulationChange(year, population.Item5, population.Item4)
year += 10
ShowPopulationChange(year, population.Item6, population.Item5)
year += 10
ShowPopulationChange(year, population.Item7, population.Item6)
year += 10
ShowPopulationChange(year, population.Rest.Item1, population.Item7)
year += 10
ShowPopulationChange(year, population.Rest.Item2, population.Rest.Item1)
year += 10
ShowPopulationChange(year, population.Rest.Item3, population.Rest.Item2)
year += 10
ShowPopulationChange(year, population.Rest.Item4, population.Rest.Item3)
year += 10
ShowPopulationChange(year, population.Rest.Item5, population.Rest.Item4)
year += 10
ShowPopulationChange(year, population.Rest.Item6, population.Rest.Item5)
year += 10
ShowPopulationChange(year, population.Rest.Item7, population.Rest.Item6)
year += 10
ShowPopulationChange(year, population.Rest.Rest.Item1, population.Rest.Item7)
year += 10
ShowPopulationChange(year, population.Rest.Rest.Item2, population.Rest.Rest.Item1)
year += 10
ShowPopulationChange(year, population.Rest.Rest.Item3, population.Rest.Rest.Item2)
End Sub
Private Sub ShowPopulationChange(ByVal year As Integer, ByVal newPopulation As Integer, ByVal oldPopulation As Integer)
Console.WriteLine("{0,5} {1,14:N0} {2,10:P2}", year, newPopulation,
(newPopulation - oldPopulation) / oldPopulation / 10)
End Sub
Private Sub ShowPopulation(ByVal year As Integer, ByVal newPopulation As Integer)
Console.WriteLine("{0,5} {1,14:N0} {2,10:P2}", year, newPopulation, "n/a")
End Sub
End Module
' The example displays the following output:
'
' Population of Detroit
' Year Population Change
' 1860 45,619 n/a
' 1870 79,577 7.44 %
' 1880 116,340 4.62 %
' 1890 205,876 7.70 %
' 1900 285,704 3.88 %
' 1910 465,766 6.30 %
' 1920 993,078 11.32 %
' 1930 1,568,622 5.80 %
' 1940 1,623,452 0.35 %
' 1950 1,849,568 1.39 %
' 1960 1,670,144 -0.97 %
' 1970 1,511,462 -0.95 %
' 1980 1,203,339 -2.04 %
' 1990 1,027,974 -1.46 %
' 2000 951,270 -0.75 %
Opmerkingen
De Rest eigenschap retourneert een genest Tuple object dat toegang biedt tot de achtste, maar ndeonderdelen van de tuple. Afhankelijk van het totale aantal onderdelen in de tuple kunnen de waarden van de achtste tot en met veertiende onderdelen worden opgehaald uit de geneste Tuple objecten Item1 via Item7 eigenschappen. Vervolgens kunt u de Rest eigenschap van een genest Tuple<T1,T2,T3,T4,T5,T6,T7,TRest> object gebruiken om het Tuple object op te halen op het volgende niveau van nesten.
U kunt het aantal onderdelen in een geneste Tuple object dat door de Rest eigenschap wordt geretourneerd dynamisch bepalen door het cijfer op te halen uit de naam van het type. In het volgende voorbeeld ziet u een afbeelding.
Imports System.Reflection
Module Example
Sub Main()
Dim from1980 As Tuple(Of Integer, Integer, Integer) =
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)
ShowComponentCount(population)
End Sub
Private Sub ShowComponentCount(tuple As Object)
Static ctr As Integer = 0
Static totalComponents As Integer = 0
Dim components As Integer = 0
ctr += 1
Dim name As String = tuple.GetType().Name
components += Int32.Parse(name.Substring(name.IndexOf("`") + 1))
If components = 8 Then
totalComponents += 7
Console.WriteLine("The tuple at level {0} has 7 components.", ctr)
ShowComponentCount(tuple.Rest)
Else
totalComponents += components
Console.WriteLine("The tuple at level {0} has {1} components.",
ctr, components)
Console.WriteLine("Total components in tuple: {0}", totalComponents)
End If
End Sub
End Module
' The example displays the following output:
' The tuple at level 1 has 7 components.
' The tuple at level 2 has 7 components.
' The tuple at level 3 has 3 components.
' Total components in tuple: 17