Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Lấy kiểu dữ liệu của phần tử Tuple trong C#

Giới thiệu

Tuple (namespace System) là kiểu tham chiếu bất biến (immutable) chứa số lượng cố định phần tử. Phương thức GetType() trả về Type mô tả cấu trúc tuple (ví dụ: System.Tuple`3[Int32, Int32, Tuple`2[Int32, Int32]]).

Ví dụ 1: Tuple lồng nhau 7 phần tử

using System;

public class Demo
{
    public static void Main(string[] args)
    {
        var tuple1 = Tuple.Create(150, 1500, Tuple.Create(50, 100));
        var tuple2 = Tuple.Create(150, 1500, Tuple.Create(100, 200));

        Console.WriteLine("Tuple1 bằng Tuple2? = " + tuple1.Equals(tuple2));
        Console.WriteLine("HashCode Tuple1 = " + tuple1.GetHashCode());
        Console.WriteLine("Kiểu Tuple1 = " + tuple1.GetType());
        Console.WriteLine("HashCode Tuple2 = " + tuple2.GetHashCode());
        Console.WriteLine("Kiểu Tuple2 = " + tuple2.GetType());
    }
}

Kết quả

Tuple1 bằng Tuple2? = False
HashCode Tuple1 = 188892
Kiểu Tuple1 = System.Tuple`3[System.Int32,System.Int32,System.Tuple`2[System.Int32,System.Int32]]
HashCode Tuple2 = 191462
Kiểu Tuple2 = System.Tuple`3[System.Int32,System.Int32,System.Tuple`2[System.Int32,System.Int32]]

Ví dụ 2: Tuple đơn giản 2 phần tử

using System;

public class Demo
{
    public static void Main(string[] args)
    {
        var tuple1 = Tuple.Create(10, 20);
        var tuple2 = Tuple.Create(30, 40);

        Console.WriteLine("Tuple1 bằng Tuple2? = " + tuple1.Equals(tuple2));
        Console.WriteLine("HashCode Tuple1 = " + tuple1.GetHashCode());
        Console.WriteLine("Kiểu Tuple1 = " + tuple1.GetType());
        Console.WriteLine("HashCode Tuple2 = " + tuple2.GetHashCode());
        Console.WriteLine("Kiểu Tuple2 = " + tuple2.GetType());
    }
}

Kết quả

Tuple1 bằng Tuple2? = False
HashCode Tuple1 = 350
Kiểu Tuple1 = System.Tuple`2[System.Int32,System.Int32]
HashCode Tuple2 = 1014
Kiểu Tuple2 = System.Tuple`2[System.Int32,System.Int32]

Lưu ý

  • Kiểu tuple được mã hóa: Tuple`N[T1, T2, ..., TN] với N = số phần tử.
  • Tuple là reference type, Equals so sánh giá trị từng phần tử.
  • Từ C# 7.0, có ValueTuple (struct) với cú pháp (int, string) nhẹ hơn và hỗ trợ deconstruction.