विवरण
Tuple<T1> क्लास एक 1-टपल (सिंगलटन) को दर्शाता है। एक टपल एक डेटा संरचना है जिसमें तत्वों का एक क्रम होता है। C# 7.0+ में, टपल लिटरल्स (value) या ValueTuple<T1> का उपयोग करके अधिक सरल सिंटैक्स उपलब्ध है, लेकिन Tuple<T1> क्लास अभी भी उपयोगी है जब इम्युटेबल रेफरेंस टाइप सेमेंटिक्स की आवश्यकता हो।
उदाहरण 1: इंटीजर सिंगलटन टपल
using System;
public class Demo {
public static void Main(string[] args) {
Tuple tuple = new Tuple(100);
Console.WriteLine("मान = " + tuple.Item1);
if (tuple.Item1 == 150) {
Console.WriteLine(tuple.Item1);
}
if (tuple.Item1 == 100) {
Console.WriteLine(tuple.Item1);
}
}
}
आउटपुट
मान = 100
100
उदाहरण 2: स्ट्रिंग सिंगलटन टपल
using System;
public class Demo {
public static void Main(string[] args) {
Tuple tuple = new Tuple("amit");
Console.WriteLine("मान = " + tuple.Item1);
if (tuple.Item1 == "tom") {
Console.WriteLine(tuple.Item1);
}
if (tuple.Item1 == "amit") {
Console.WriteLine("मौजूद: टपल मान = " + tuple.Item1);
}
}
}
आउटपुट
मान = amit
मौजूद: टपल मान = amit
आधुनिक विकल्प: ValueTuple (C# 7.0+)
// टपल लिटरल सिंटैक्स
var tuple1 = (100); // वास्तव में सिर्फ int, टपल नहीं
var tuple2 = (100,); // 1-टपल (अंत में कॉमा आवश्यक)
var tuple3 = (Value: 100); // नामित सदस्य
// ValueTuple - म्यूटेबल, वैल्यू टाइप
ValueTuple vt = new ValueTuple(100);
Console.WriteLine(vt.Item1); // 100
// डीस्ट्रक्चरिंग
var (value) = tuple2;
Console.WriteLine(value); // 100
Tuple vs ValueTuple
| विशेषता | Tuple<T> | ValueTuple<T> |
|---|---|---|
| प्रकार | रेफरेंस टाइप (क्लास) | वैल्यू टाइप (स्ट्रक्चर) |
| म्यूटेबिलिटी | इम्युटेबल | म्यूटेबल |
| सिंटैक्स | new Tuple<T>(val) | (val,) या new ValueTuple<T>(val) |
| प्रदर्शन | हीप आवंटन | स्टैक आवंटन, तेज़ |
| नामित सदस्य | नहीं | हां (C# 7.0+) |
कब उपयोग करें
Tuple<T>: जब इम्युटेबिलिटी, रेफरेंस सेमेंटिक्स, या लिगेसी API संगतता आवश्यक हो।ValueTuple<T>: सामान्य उपयोग के लिए, बेहतर प्रदर्शन और सिंटैक्स के साथ।- एकल मान के लिए, अक्सर एक साधारण वेरिएबल या
Nullable<T>पर्याप्त होता है।