C#-এ Tuple ক্লাসের মাধ্যমে একটি নির্দিষ্ট সংখ্যক উপাদান ধারণ করা যায়। Tuple-এর ষষ্ঠ উপাদান পেতে Item6 প্রোপার্টি ব্যবহার করা হয়। এটি শুধুমাত্র পঠনযোগ্য (read-only) প্রোপার্টি। ৭ বা তার বেশি উপাদান থাকলে Item6 সরাসরি অ্যাক্সেসযোগ্য।
উদাহরণ ১: ৭-উপাদানের Tuple (Tuple<T1,T2,T3,T4,T5,T6,T7>)
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 এবং Tuple2 সমান কিনা? = " + tuple1.Equals(tuple2));
Console.WriteLine("Tuple1 HashCode = " + tuple1.GetHashCode());
Console.WriteLine("Tuple2 HashCode = " + tuple2.GetHashCode());
Console.WriteLine("Tuple1 প্রথম উপাদান (Item1) = " + tuple1.Item1);
Console.WriteLine("Tuple2 প্রথম উপাদান (Item1) = " + tuple2.Item1);
Console.WriteLine("Tuple1 দ্বিতীয় উপাদান (Item2) = " + tuple1.Item2);
Console.WriteLine("Tuple2 দ্বিতীয় উপাদান (Item2) = " + tuple2.Item2);
Console.WriteLine("Tuple1 চতুর্থ উপাদান (Item4) = " + tuple1.Item4);
Console.WriteLine("Tuple2 চতুর্থ উপাদান (Item4) = " + tuple2.Item4);
Console.WriteLine("Tuple1 পঞ্চম উপাদান (Item5) = " + tuple1.Item5);
Console.WriteLine("Tuple2 পঞ্চম উপাদান (Item5) = " + tuple2.Item5);
Console.WriteLine("Tuple1 ষষ্ঠ উপাদান (Item6) = " + tuple1.Item6); // ষষ্ঠ উপাদান
Console.WriteLine("Tuple2 ষষ্ঠ উপাদান (Item6) = " + tuple2.Item6);
Console.WriteLine("Tuple1 সপ্তম উপাদান (Item7) = " + tuple1.Item7);
Console.WriteLine("Tuple2 সপ্তম উপাদান (Item7) = " + tuple2.Item7);
}
}
আউটপুট
Tuple1 এবং Tuple2 সমান কিনা? = True Tuple1 HashCode = 3231587 Tuple2 HashCode = 3231587 Tuple1 প্রথম উপাদান (Item1) = 75 Tuple2 প্রথম উপাদান (Item1) = 75 Tuple1 দ্বিতীয় উপাদান (Item2) = 200 Tuple2 দ্বিতীয় উপাদান (Item2) = 200 Tuple1 চতুর্থ উপাদান (Item4) = 700 Tuple2 চতুর্থ উপাদান (Item4) = 700 Tuple1 পঞ্চম উপাদান (Item5) = 100 Tuple2 পঞ্চম উপাদান (Item5) = 100 Tuple1 ষষ্ঠ উপাদান (Item6) = 1200 Tuple2 ষষ্ঠ উপাদান (Item6) = 1200 Tuple1 সপ্তম উপাদান (Item7) = 1500 Tuple2 সপ্তম উপাদান (Item7) = 1500
উদাহরণ ২: ৮-উপাদানের Tuple (nested Tuple)
using System;
public class Demo {
public static void Main(string[] args) {
// ৮টি উপাদানের Tuple তৈরি (সান্তম উপাদানটি একটি Tuple)
var tuple = Tuple.Create(1200, 1500, 2200, 2700, 3100, 3500, 4500, 5500);
Console.WriteLine("Tuple HashCode = " + tuple.GetHashCode());
Console.WriteLine("প্রথম উপাদান (Item1) = " + tuple.Item1);
Console.WriteLine("দ্বিতীয় উপাদান (Item2) = " + tuple.Item2);
Console.WriteLine("তৃতীয় উপাদান (Item3) = " + tuple.Item3);
Console.WriteLine("চতুর্থ উপাদান (Item4) = " + tuple.Item4);
Console.WriteLine("পঞ্চম উপাদান (Item5) = " + tuple.Item5);
Console.WriteLine("ষষ্ঠ উপাদান (Item6) = " + tuple.Item6);
Console.WriteLine("সপ্তম উপাদান (Item7) = " + tuple.Item7);
// অষ্টম উপাদান: tuple.Rest.Item1
}
}
আউটপুট
Tuple HashCode = 49989024 প্রথম উপাদান (Item1) = 1200 দ্বিতীয় উপাদান (Item2) = 1500 তৃতীয় উপাদান (Item3) = 2200 চতুর্থ উপাদান (Item4) = 2700 পঞ্চম উপাদান (Item5) = 3100 ষষ্ঠ উপাদান (Item6) = 3500 সপ্তম উপাদান (Item7) = 4500
Tuple উপাদান অ্যাক্সেস সারসংক্ষেপ (৭+ উপাদানের ক্ষেত্রে)
| পজিশন | প্রোপার্টি | নোট |
|---|---|---|
| ১ম | Item1 | সরাসরি অ্যাক্সেস |
| ২য় | Item2 | সরাসরি অ্যাক্সেস |
| ৩য় | Item3 | সরাসরি অ্যাক্সেস |
| ৪র্থ | Item4 | সরাসরি অ্যাক্সেস |
| ৫ম | Item5 | সরাসরি অ্যাক্সেস |
| ৬ষ্ঠ | Item6 | সরাসরি অ্যাক্সেস (৭+ উপাদান থাকলে) |
| ৭ম | Item7 | সরাসরি অ্যাক্সেস (৭+ উপাদান থাকলে) |
| ৮ম+ | Rest.Item1, Rest.Item2... | নেস্টেড Tuple-র মাধ্যমে |
গুরুত্বপূর্ণ নোট
- Tuple নয় পরিবর্তনযোগ্য (immutable) - একবার তৈরি হলে এর মান পরিবর্তন করা যায় না।
- ৭টির বেশি উপাদান হলে সান্তম উপাদানটি একটি নেস্টেড Tuple হয়, যেটি
Restপ্রোপার্টি দিয়ে অ্যাক্সেস করা হয়। - C# 7.0+ এ ভ্যালু Tuple (
ValueTuple) ব্যবহার করা ভালো, যা ডিকন্সট্রাকচারিং এবং নামযুক্ত উপাদান সাপোর্ট করে। - ValueTuple উদাহরণ:
var t = (1, 2, 3, 4, 5, 6); Console.WriteLine(t.Item6); // 6 - নামযুক্ত ValueTuple:
var t = (First: 1, Second: 2, Sixth: 6); Console.WriteLine(t.Sixth); // 6