Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

วิธีได้ Element ที่ 5 ของ Tuple ใน C#

ใน C# คลาส Tuple เข้าถึง element ที่ 5 ได้ผ่าน property Item5 (สำหรับ Tuple ที่มี 5 elements ขึ้นไป) ตัวอย่างนี้แสดงการเข้าถึง Item5 และ Item1

ตัวอย่างโค้ดที่ 1: Tuple 7 Elements

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("Is Tuple1 equal to Tuple2? = " + tuple1.Equals(tuple2));
        Console.WriteLine("HashCode of Tuple1 = " + tuple1.GetHashCode());
        Console.WriteLine("HashCode of Tuple2 = " + tuple2.GetHashCode());
        Console.WriteLine("Tuple1 Item 5th = " + tuple1.Item5);
        Console.WriteLine("Tuple2 Item 5th = " + tuple2.Item5);
    }
}

ผลลัพธ์

Is Tuple1 equal to Tuple2? = True
HashCode of Tuple1 = 3231587
HashCode of Tuple2 = 3231587
Tuple1 Item 5th = 100
Tuple2 Item 5th = 100

ตัวอย่างโค้ดที่ 2: Tuple 8 Elements

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 of 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);
        // Item8 = tuple.Rest.Item1
    }
}

ผลลัพธ์

HashCode of 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

โครงสร้าง Tuple Properties

Tuple SizeProperties
1Item1
2Item1, Item2
3Item1, Item2, Item3
4Item1, Item2, Item3, Item4
5Item1, Item2, Item3, Item4, Item5
6Item1..Item6
7Item1..Item7
8Item1..Item7, Rest (Tuple)

Tuple.Create Factory Method


// สร้าง Tuple ได้ถึง 8 elements โดยตรง
var t1 = Tuple.Create(1);
var t2 = Tuple.Create(1, 2);
var t3 = Tuple.Create(1, 2, 3);
var t4 = Tuple.Create(1, 2, 3, 4);
var t5 = Tuple.Create(1, 2, 3, 4, 5);
var t6 = Tuple.Create(1, 2, 3, 4, 5, 6);
var t7 = Tuple.Create(1, 2, 3, 4, 5, 6, 7);
var t8 = Tuple.Create(1, 2, 3, 4, 5, 6, 7, Tuple.Create(8)); // 8th ใน Rest

ValueTuple (C# 7+) - ทันสมัยกว่า


// เข้าถึง element ที่ 5
var tuple = (1, 2, 3, 4, 5, 6, 7);
Console.WriteLine(tuple.Item5); // 5

// Named tuple - อ่านง่ายกว่า
var data = (Id: 1, Name: "John", Age: 30, City: "NYC", Score: 95.5);
Console.WriteLine(data.Score); // 95.5 - ใช้ชื่อแทน Item5

ข้อแนะนำ

  • ใช้ ValueTuple (struct) แทน Tuple (class) ในโค้ดใหม่ - เร็วกว่า, รองรับ named elements
  • Item5 ใช้ได้ก็ต่อเมื่อ Tuple มี 5 elements ขึ้นไป
  • Tuple เป็น immutable - ไม่สามารถแก้ไข Item5 หลังสร้างได้