Giới thiệu
Tuple cung cấp các thuộc tính chỉ đọc Item1, Item2, ..., Item7 và Rest (cho tuple 8 phần tử) để truy cập phần tử theo vị trí.
Ví dụ 1: Tuple 7 phần tử, so sánh Item1 và Item5
using System;
public class Demo
{
public static void Main(string[] args)
{
var tuple1 = Tuple.Create(75, 200, 500, 700, 100, 1200, 1500);
var tuple2 = Tuple.Create(75, 200, 500, 700, 100, 1200, 1500);
Console.WriteLine("Tuple1 bằng Tuple2? = " + tuple1.Equals(tuple2));
Console.WriteLine("HashCode Tuple1 = " + tuple1.GetHashCode());
Console.WriteLine("HashCode Tuple2 = " + tuple2.GetHashCode());
Console.WriteLine("Tuple1 Item 5th = " + tuple1.Item5);
Console.WriteLine("Tuple2 Item 5th = " + tuple2.Item5);
Console.WriteLine("Tuple1 Item 1st = " + tuple1.Item1);
Console.WriteLine("Tuple2 Item 1st = " + tuple2.Item1);
}
}
Kết quả
Tuple1 bằng Tuple2? = True
HashCode Tuple1 = 3231587
HashCode Tuple2 = 3231587
Tuple1 Item 5th = 100
Tuple2 Item 5th = 100
Tuple1 Item 1st = 75
Tuple2 Item 1st = 75
Ví dụ 2: Tuple 8 phần tử (có Rest)
using System;
public class Demo
{
public static void Main(string[] args)
{
var tuple = Tuple.Create(1200, 1500, 2200, 2700, 3100, 3500, 4500, 5500);
Console.WriteLine("HashCode Tuple = " + tuple.GetHashCode());
Console.WriteLine("Tuple Item 1st = " + tuple.Item1);
Console.WriteLine("Tuple Item 2nd = " + tuple.Item2);
Console.WriteLine("Tuple Item 3rd = " + tuple.Item3);
Console.WriteLine("Tuple Item 4th = " + tuple.Item4);
Console.WriteLine("Tuple Item 5th = " + tuple.Item5);
Console.WriteLine("Tuple Item 6th = " + tuple.Item6);
Console.WriteLine("Tuple Item 7th = " + tuple.Item7);
// tuple.Rest chứa phần tử thứ 8 (Item8)
}
}
Kết quả
HashCode Tuple = 49989024
Tuple Item 1st = 1200
Tuple Item 2nd = 1500
Tuple Item 3rd = 2200
Tuple Item 4th = 2700
Tuple Item 5th = 3100
Tuple Item 6th = 3500
Tuple Item 7th = 4500
Chú ý
- Tuple tối đa 8 phần tử trực tiếp; phần tử thứ 8 truy cập qua
Rest.Item1(vì Rest là Tuple<T8>). - Từ C# 7, dùng
ValueTuplevới tên thành phần:(int Id, string Name)và deconstructionvar (id, name) = tuple;.