บทนำ
คลาส Tuple<T1,T2,T3,T4,T5,T6,T7> แสดง 7-tuple ซึ่งเรียกว่า septet Tuple เป็นโครงสร้างข้อมูลที่มีลำดับขององค์ประกอบ (elements) จำนวนคงที่
การใช้งานของ Tuple
- การเข้าถึงชุดข้อมูลได้ง่ายขึ้น
- การจัดการชุดข้อมูลได้ง่ายขึ้น
- การแทนชุดข้อมูลเดี่ยว (single set of data)
- การคืนค่าหลายค่าจากเมธอด
- การส่งหลายค่าไปยังเมธอด
ตัวอย่างที่ 1: สร้างและใช้งาน 7-Tuple
using System;
public class Demo
{
public static void Main(string[] args)
{
Tuple<int, int, int, int, int, int, int> tuple =
new Tuple<int, int, int, int, int, int, int>(100, 150, 200, 300, 600, 1000, 2000);
Console.WriteLine("Value (Item1) = " + tuple.Item1);
Console.WriteLine("Value (Item2) = " + tuple.Item2);
Console.WriteLine("Value (Item3) = " + tuple.Item3);
Console.WriteLine("Value (Item4) = " + tuple.Item4);
Console.WriteLine("Value (Item5) = " + tuple.Item5);
Console.WriteLine("Value (Item6) = " + tuple.Item6);
Console.WriteLine("Value (Item7) = " + tuple.Item7);
if (tuple.Item5 == 600)
Console.WriteLine("Exists: Tuple Item 5 = " + tuple.Item5);
if (tuple.Item6 == 900)
Console.WriteLine("Exists: Tuple Item 6 = " + tuple.Item6);
if (tuple.Item7 == 2000)
Console.WriteLine("Exists: Tuple Item 7 = " + tuple.Item7);
}
}
ผลลัพธ์
Value (Item1) = 100 Value (Item2) = 150 Value (Item3) = 200 Value (Item4) = 300 Value (Item5) = 600 Value (Item6) = 1000 Value (Item7) = 2000 Exists: Tuple Item 5 = 600 Exists: Tuple Item 7 = 2000
ตัวอย่างที่ 2: 7-Tuple ที่มีค่าบางส่วนเท่ากัน
using System;
public class Demo
{
public static void Main(string[] args)
{
Tuple<int, int, int, int, int, int, int> tuple =
new Tuple<int, int, int, int, int, int, int>(100, 150, 200, 300, 600, 1000, 1000);
Console.WriteLine("Value (Item1) = " + tuple.Item1);
Console.WriteLine("Value (Item2) = " + tuple.Item2);
Console.WriteLine("Value (Item3) = " + tuple.Item3);
Console.WriteLine("Value (Item4) = " + tuple.Item4);
Console.WriteLine("Value (Item5) = " + tuple.Item5);
Console.WriteLine("Value (Item6) = " + tuple.Item6);
Console.WriteLine("Value (Item7) = " + tuple.Item7);
if (tuple.Item5 == 600)
Console.WriteLine("Exists: Tuple Item 5 = " + tuple.Item5);
if (tuple.Item6 == 900)
Console.WriteLine("Exists: Tuple Item 6 = " + tuple.Item6);
if (tuple.Item7 == 2000)
Console.WriteLine("Exists: Tuple Item 7 = " + tuple.Item7);
if (tuple.Item7 == tuple.Item6)
Console.WriteLine("Tuple Items Matched!");
}
}
ผลลัพธ์
Value (Item1) = 100 Value (Item2) = 150 Value (Item3) = 200 Value (Item4) = 300 Value (Item5) = 600 Value (Item6) = 1000 Value (Item7) = 1000 Exists: Tuple Item 5 = 600 Tuple Items Matched!
สรุป
7-Tuple (Septuple) ใช้สำหรับจัดกลุ่มข้อมูล 7 ค่าที่เกี่ยวข้องกัน โดยไม่ต้องสร้างคลาสหรือโครงสร้าง (struct) ใหม่ ใน C# 7.0+ สามารถใช้ ValueTuple ((int, int, int, int, int, int, int)) และ tuple deconstruction ได้ ซึ่งสะดวกและมีประสิทธิภาพมากกว่า