ValueTuple ValueTuple ValueTuple ValueTuple Struct

定義

値のタプルを作成するための静的メソッドを提供します。Provides static methods for creating value tuples.

public value class ValueTuple : IComparable, IComparable<ValueTuple>, IEquatable<ValueTuple>, System::Collections::IStructuralComparable, System::Collections::IStructuralEquatable, System::Runtime::CompilerServices::ITuple
[System.Serializable]
public struct ValueTuple : IComparable, IComparable<ValueTuple>, IEquatable<ValueTuple>, System.Collections.IStructuralComparable, System.Collections.IStructuralEquatable, System.Runtime.CompilerServices.ITuple
type ValueTuple = struct
    interface ITuple
Public Structure ValueTuple
Implements IComparable, IComparable(Of ValueTuple), IEquatable(Of ValueTuple), IStructuralComparable, IStructuralEquatable, ITuple
継承
ValueTupleValueTupleValueTupleValueTuple
属性
実装

注釈

組は、特定の数と要素のシーケンスを持つデータ構造体です。A tuple is a data structure that has a specific number and sequence of elements. 組の例としては、3つの要素 (3 タプルまたは三重) を含むデータ構造があります。これは、最初の要素に人名、2番目の要素に1年、3番目の要素でその年のユーザーの収入などの識別子を格納するために使用されます。An example of a tuple is a data structure with three elements (known as a 3-tuple or triple) that is used to store an identifier such as a person's name in the first element, a year in the second element, and the person's income for that year in the third element.

値のタプルは .NET Framework 4.7.NET Framework 4.7 に導入されたタプル型でF#あり、の組C# と構造体の組のランタイム実装を提供します。Value tuples are tuple types introduced in the .NET Framework 4.7.NET Framework 4.7 to provide the runtime implementation of tuples in C# and struct tuples in F#. これらは、次のように、Tuple<T1>Tuple<T1,T2> などのタプルクラスとは異なります。They differ from the tuple classes, such as Tuple<T1>, Tuple<T1,T2>, etc., as follows:

  • これらは、クラス (参照型) ではなく構造 (値型) です。They are structures (value types) rather than classes (reference types).

  • 読み取り専用ではなく、変更可能です。They are mutable rather than read-only. つまり、タプルコンポーネントの値は変更される可能性があります。That is, the value of tuple components can change.

  • @No__t-0、`Item2` などのデータメンバーは、プロパティではなくフィールドです。Their data members, such as Item1, Item2, etc., are fields rather than properties.

@No__t 0 構造体は、要素を持たないタプルを表します。The ValueTuple structure represents a tuple that has no elements. これは主に、値のタプル型のインスタンスを作成して比較するための静的メソッドに便利です。It is useful primarily for its static methods that let you create and compare instances of value tuple types. このヘルパーメソッドを使用すると、値のタプルコンポーネントの型を明示的に指定しなくても、値のタプルをインスタンス化できます。Its helper methods let you instantiate value tuples without having to explicitly specify the type of each value tuple component. 静的 @no__t 0 メソッドを呼び出すことによって、0 ~ 8 個のコンポーネントを持つ値のタプルを作成できます。By calling its static Create methods, you can create value tuples that have from zero to eight components. 8個を超えるコンポーネントを持つ値のタプルの場合は、@no__t 0 のコンストラクターを呼び出す必要があります。For value tuples with more than eight components, you must call the ValueTuple<T1,T2,T3,T4,T5,T6,T7,TRest> constructor.

シリアル化と値のタプルSerialization and value tuples

@No__t-0 型は、.NET Core 1.x または .NET Framework 4.7 以前のバージョンではシリアル化できません。The ValueTuple type is not serializable in .NET Core 1.x or in the .NET Framework 4.7 and earlier versions. また、.NET Standard 2.0 を含む .NET Standard では、ValueTuple インスタンスのシリアル化は必須ではありません。@no__t 1 インスタンスがシリアル化できるかどうかは、個々の .NET Standard の実装によって異なります。In addition, .NET Standard, including .NET Standard 2.0, does not mandate serialization of ValueTuple instances; whether or not a ValueTuple instance is serializable depends on the individual .NET Standard implementation. 特定の .NET 実装で @no__t 0 型がシリアル化可能であるかどうかを判断するには、ValueTuple 型を表す @no__t 1 オブジェクトを取得し、その IsSerializable プロパティの値を取得します。To determine whether a ValueTuple type is serializable on a particular .NET implementation, get a Type object that represents the ValueTuple type and retrieve the value of its IsSerializable property. .NET Core と .NET Framework のシリアル化可能な型の一覧については、「バイナリシリアル化」を参照してください。For a list of serializable types in .NET Core and the .NET Framework, see Binary Serialization.

メソッド

CompareTo(ValueTuple) CompareTo(ValueTuple) CompareTo(ValueTuple) CompareTo(ValueTuple)

現在の ValueTuple インスタンスを指定した ValueTuple インスタンスと比較します。Compares the current ValueTuple instance to a specified ValueTuple instance.

Create() Create() Create() Create()

コンポーネントを持たない新しい値のタプルを作成します。Creates a new value tuple with zero components.

Create<T1,T2,T3,T4,T5,T6,T7,T8>(T1, T2, T3, T4, T5, T6, T7, T8) Create<T1,T2,T3,T4,T5,T6,T7,T8>(T1, T2, T3, T4, T5, T6, T7, T8) Create<T1,T2,T3,T4,T5,T6,T7,T8>(T1, T2, T3, T4, T5, T6, T7, T8) Create<T1,T2,T3,T4,T5,T6,T7,T8>(T1, T2, T3, T4, T5, T6, T7, T8)

8 個のコンポーネント (オクタプル) を持つ新しい値のタプルを作成します。Creates a new value tuple with 8 components (an octuple).

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

7 個のコンポーネント (セプタプル) を持つ新しい値のタプルを作成します。Creates a new value tuple with 7 components (a septuple).

Create<T1,T2,T3,T4,T5,T6>(T1, T2, T3, T4, T5, T6) Create<T1,T2,T3,T4,T5,T6>(T1, T2, T3, T4, T5, T6) Create<T1,T2,T3,T4,T5,T6>(T1, T2, T3, T4, T5, T6) Create<T1,T2,T3,T4,T5,T6>(T1, T2, T3, T4, T5, T6)

6 個のコンポーネント (セクスプル) を持つ新しい値のタプルを作成します。Creates a new value tuple with 6 components (a sexuple).

Create<T1,T2,T3,T4,T5>(T1, T2, T3, T4, T5) Create<T1,T2,T3,T4,T5>(T1, T2, T3, T4, T5) Create<T1,T2,T3,T4,T5>(T1, T2, T3, T4, T5) Create<T1,T2,T3,T4,T5>(T1, T2, T3, T4, T5)

5 個のコンポーネント (クインタプル) を持つ新しい値のタプルを作成します。Creates a new value tuple with 5 components (a quintuple).

Create<T1,T2,T3,T4>(T1, T2, T3, T4) Create<T1,T2,T3,T4>(T1, T2, T3, T4) Create<T1,T2,T3,T4>(T1, T2, T3, T4) Create<T1,T2,T3,T4>(T1, T2, T3, T4)

4 個のコンポーネント (クアドラプル) を持つ新しい値のタプルを作成します。Creates a new value tuple with 4 components (a quadruple).

Create<T1,T2,T3>(T1, T2, T3) Create<T1,T2,T3>(T1, T2, T3) Create<T1,T2,T3>(T1, T2, T3) Create<T1,T2,T3>(T1, T2, T3)

3 個のコンポーネント (トリプル) を持つ新しい値のタプルを作成します。Creates a new value tuple with 3 components (a triple).

Create<T1,T2>(T1, T2) Create<T1,T2>(T1, T2) Create<T1,T2>(T1, T2) Create<T1,T2>(T1, T2)

2 個のコンポーネント (ペア) を持つ新しい値のタプルを作成します。Creates a new value tuple with 2 components (a pair).

Create<T1>(T1) Create<T1>(T1) Create<T1>(T1) Create<T1>(T1)

1 個のコンポーネント (シングルトン) を持つ新しい値のタプルを作成します。Creates a new value tuple with 1 component (a singleton).

Equals(ValueTuple) Equals(ValueTuple) Equals(ValueTuple) Equals(ValueTuple)

2 つの ValueTuple インスタンスが等しいかどうかを判断します。Determines whether two ValueTuple instances are equal. このメソッドは常に true を返します。This method always returns true.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

現在の ValueTuple インスタンスが、指定されたオブジェクトと等しいかどうかを示す値を返します。Returns a value that indicates whether the current ValueTuple instance is equal to a specified object.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

現在の ValueTuple インスタンスのハッシュ コードを返します。Returns the hash code for the current ValueTuple instance.

ToString() ToString() ToString() ToString()

この ValueTuple オブジェクトの文字列表現を返します。Returns the string representation of this ValueTuple instance.

明示的なインターフェイスの実装

IStructuralComparable.CompareTo(Object, IComparer) IStructuralComparable.CompareTo(Object, IComparer) IStructuralComparable.CompareTo(Object, IComparer) IStructuralComparable.CompareTo(Object, IComparer)

現在の ValueTuple インスタンスを指定したオブジェクトと比較します。Compares the current ValueTuple instance to a specified object.

IStructuralEquatable.Equals(Object, IEqualityComparer) IStructuralEquatable.Equals(Object, IEqualityComparer) IStructuralEquatable.Equals(Object, IEqualityComparer) IStructuralEquatable.Equals(Object, IEqualityComparer)

指定した比較メソッドに基づいて、現在の ValueTuple インスタンスが、指定されたオブジェクトと等しいかどうかを示す値を返します。Returns a value that indicates whether the current ValueTuple instance is equal to a specified object based on a specified comparison method.

IStructuralEquatable.GetHashCode(IEqualityComparer) IStructuralEquatable.GetHashCode(IEqualityComparer) IStructuralEquatable.GetHashCode(IEqualityComparer) IStructuralEquatable.GetHashCode(IEqualityComparer)

この ValueTuple インスタンスのハッシュ コードを返します。Returns the hash code for this ValueTuple instance.

IComparable.CompareTo(Object) IComparable.CompareTo(Object) IComparable.CompareTo(Object) IComparable.CompareTo(Object)

指定したオブジェクトとこの ValueTuple インスタンスを比較し、これらの相対値を示す値を返します。Compares this ValueTuple instance with a specified object and returns an indication of their relative values.

ITuple.Item[Int32] ITuple.Item[Int32] ITuple.Item[Int32] ITuple.Item[Int32]

IndexOutOfRangeException を返します。Returns an IndexOutOfRangeException. ValueTuple に要素が存在しません。There are no elements in a ValueTuple.

ITuple.Length ITuple.Length ITuple.Length ITuple.Length

この ValueTuple インスタンスの長さを取得しますが、常に 0 です。Gets the length of this ValueTuple instance, which is always 0. ValueTuple に要素が存在しません。There are no elements in a ValueTuple.

適用対象