C# ValueTuple <T1,T2,T3,T4> Struct
Last Updated :
11 Jul, 2025
ValueTuple <T1, T2, T3, T4> struct in C# is part of the System namespace and it is used to create a tuple that stores quadruple or 4-ValueTuple. It offers a more lightweight, value-type tuple compared to the older Tuple class and provides better performance and memory management. The ValueTuple <T1, T2, T3, T4> struct is a value type and mutable means the value of its elements can be modified.
Key Features
- Elements: ValueTuple <T1,T2,T3,T4> contains four elements referred to as Item<ElementNumber>.
- Mutable: The value of the Item(fields) can be changed after the tuple is created.
- Type-Safe: The type of field is specified when the tuple is created, ensuring type safety.
- Implements Interfaces: ValueTuple<T1, T2, T3, T4> implements several interfaces such as:
- IStructuralComparable
- IStructuralEquatable
- IComparable<ValueTuple<T1, T2, T3, T4>>
- IEquatable<ValueTuple<T1, T2, T3, T4>>
- ITuple: This makes it useful in various comparison and equality scenarios.
Constructor
ValueTuple<T1, T2, T3, T4>(T1, T2, T3, T4
Fields
The constructor for ValueTuple <T1, T2, T3, T4> initializes the tuple with four values. It is not a property, it is a field that can be accessed by ValueTuple<ElementNumber>
- Item1: Gets the value of the current ValueTuple<T1, T2, T3, T4> instance’s first element.
- Item2: Gets the value of the current ValueTuple<T1, T2, T3, T4> instance’s second element.
- Item3: Gets the value of the current ValueTuple<T1, T2, T3, T4> instance’s third element.
- Item4: Gets the value of the current ValueTuple<T1, T2, T3, T4> instance’s fourth element.
Example: Demonstration of access to the ValueTuple<T1, T2, T3, T4> element in C#.
C#
// Accessing the elements of
// ValueTuple<T1, T2, T3, T4>
using System;
class Geeks
{
static public void Main()
{
// Creating a value tuple using create method
var library = ValueTuple.Create(3456, "The Guide",
"R. K. Narayan", 1958);
// Display the element of the given value tuple
Console.WriteLine("Book Details: ");
Console.WriteLine("Book Id: {0}", library.Item1);
Console.WriteLine("Book Name: {0}", library.Item2);
Console.WriteLine("Author Name: {0}", library.Item3);
Console.WriteLine("Publication date: {0}", library.Item4);
}
}
OutputBook Details:
Book Id: 3456
Book Name: The Guide
Author Name: R. K. Narayan
Publication date: 1958
Explanation: In the above example, it creates a ValueTuple with a four elements of different types and prints each element by field Item<elementNumber>.
Methods
Method | Description |
---|
CompareTo(ValueTuple) | It compares the current ValueTuple<T1> instance to a specified ValueTuple<T1> instance. |
Equals(Object) | It returns a value that indicates whether the current ValueTuple<T1> instance equals a specified object. |
Equals(ValueTuple<T1>) | It returns a value that indicates whether the current ValueTuple<T1> instance equals a specified ValueTuple<T1> instance. |
GetHashCode() | It calculates the hash code for the current ValueTuple<T1> instance. |
ToString() | It returns a string that represents the value of this ValueTuple<T1> instance. |
Example of Equals() Method in ValueTuple
C#
// Check if value tuples are Equal
using System;
class Geeks
{
static public void Main()
{
// Creating 4-ValueTuple
// Using Create method
var T1 = ValueTuple.Create(346, 784, 45, 22);
var T2 = ValueTuple.Create(346, 7743, 56, 22);
// Check if both the value
// tuples are equal or not
if (T1.Equals(T2))
Console.WriteLine("Code is correct...!!");
else
Console.WriteLine("Incorrect Code...!!");
}
}
OutputIncorrect Code...!!
Similar Reads
C# ValueTuple <T1,T2,T3,T4,T5> Struct ValueTuple <T1, T2, T3, T4, T5> struct in C# is part of the System namespace and is used to create a tuple that stores quintuple or 5-ValueTuple. It offers a more lightweight, value-type tuple compared to the older Tuple class and provides better performance and memory management. The ValueTup
3 min read
C# ValueTuple<T1,T2,T3> Struct ValueTuple<T1, T2, T3> struct in C# is part of the System namespace and is used to store a tuple with three values. It is a value type and provides better performance and memory management compared to the traditional Tuple class. Also, the ValueTuple<T1, T2, T3> is mutable which means th
3 min read
C# ValueTuple <T1,T2,T3,T4,T5,T6> Struct ValueTuple <T1, T2, T3, T4, T5, T6> struct in C# is part of the System namespace and is used to create a tuple that storessextuple or 6-ValueTuple. It offers a more lightweight, value-type tuple compared to the older Tuple class and provides better performance and memory management. The ValueT
3 min read
C# ValueTuple<T1, T2> Struct ValueTuple<T1, T2> is a struct in C# provided by the System namespace. It is used to create a tuple that stores a pair value tuple or 2-ValueTuple. The ValueTuple<T1, T2> Struct is a value type which means it is stored on the stack and it is mutable. We can change its value after creatio
3 min read
C# ValueTuple <T1,T2,T3,T4,T5,T6,T7> Struct ValueTuple <T1, T2, T3, T4, T5, T6, T7> struct in C# is part of the System namespace and is used to create a tuple that stores septuple or 7-ValueTuple. It offers a more lightweight, value-type tuple compared to the older Tuple class and provides better performance and memory management. The V
3 min read
C# ValueTuple <T1> Struct ValueTuple<T1> struct in C# is part of the System namespace and it is used to create a tuple that stores a single component. It offers a more lightweight, value-type tuple compared to the older Tuple class and provides better performance and memory management. The ValueTuple<T1> struct i
2 min read