Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में 2-टपल (पेयर टपल) कैसे बनाएं

C# में Tuple<T1, T2> क्लास एक 2-टपल को दर्शाता है, जिसे पेयर (Pair) भी कहा जाता है। एक टपल एक डेटा संरचना है जिसमें तत्वों का क्रम होता है।

उदाहरण 1: स्ट्रिंग पेयर

using System; 

public class Demo 
{ 
    public static void Main(string[] args) 
    { 
        Tuple<string, string> tuple = new Tuple<string, string>("jack", "steve"); 
        Console.WriteLine("Value = " + tuple.Item1); 
        
        if (tuple.Item1 == "jack") 
        { 
            Console.WriteLine("Exists: Tuple Value = " + tuple.Item1); 
        } 
        
        if (tuple.Item2 == "david") 
        { 
            Console.WriteLine("Exists: Tuple Value = " + tuple.Item2); 
        } 
    } 
}

आउटपुट

Value = jack
Exists: Tuple Value = jack

उदाहरण 2: मिश्रित प्रकार (int, string)

using System; 

public class Demo 
{ 
    public static void Main(string[] args) 
    { 
        // नोट: मूल कोड में Tuple बिना जेनेरिक पैरामीटर के दिखाया गया है (कंपाइल त्रुटि)
        // सही सिंटैक्स:
        Tuple<int, string> tuple = new Tuple<int, string>(20, "steve"); 
        Console.WriteLine("Value = " + tuple.Item1); 
        
        if (tuple.Item1 == 20) 
        { 
            Console.WriteLine("Exists: Tuple Value = " + tuple.Item1); 
        } 
        
        if (tuple.Item2 == "david") 
        { 
            Console.WriteLine("Exists: Tuple Value = " + tuple.Item2); 
        } 
    } 
}

आउटपुट

Value = 20
Exists: Tuple Value = 20

आधुनिक C# 7.0+: ValueTuple (टपल लिटरल्स)

.NET 4.7+ / C# 7.0 से, ValueTuple संरचना और टपल लिटरल सिंटैक्स उपलब्ध है जो अधिक सुविधाजनक है:

सिंटैक्स तुलना

// पुराना तरीका (क्लास-आधारित, रेफरेंस प्रकार)
Tuple<int, string> oldStyle = new Tuple<int, string>(1, "one");
Console.WriteLine(oldStyle.Item1); // 1
Console.WriteLine(oldStyle.Item2); // "one"

// नया तरीका (स्ट्रक्चर-आधारित, मान प्रकार) - C# 7.0+
(int, string) newStyle = (1, "one");
// या नामित सदस्यों के साथ:
(int Number, string Text) named = (1, "one");

Console.WriteLine(newStyle.Item1);   // 1
Console.WriteLine(named.Number);     // 1 (नामित एक्सेस!)
Console.WriteLine(named.Text);       // "one"

ValueTuple के लाभ

  • नामित सदस्य - Item1/Item2 के बजाय सार्थक नाम
  • मान प्रकार - स्टैक आवंटन, कोई GC दबाव नहीं
  • डीऑर्डरिंग - var (a, b) = tuple;
  • बेहतर प्रदर्शन - कोई हीप आवंटन नहीं
  • समानता - संरचनात्मक तुलना स्वचालित

व्यावहारिक उदाहरण: मल्टीपल रिटर्न मान

// पुराना तरीका
public Tuple<int, int> DivideOld(int dividend, int divisor)
{
    return new Tuple<int, int>(dividend / divisor, dividend % divisor);
}

// नया तरीका (C# 7.0+)
public (int Quotient, int Remainder) DivideNew(int dividend, int divisor)
{
    return (dividend / divisor, dividend % divisor);
}

// उपयोग
var (q, r) = DivideNew(10, 3);
Console.WriteLine($"भागफल: {q}, शेष: {r}"); // भागफल: 3, शेष: 1

मुख्य बिंदु

  • Tuple<T1,T2> एक रेफरेंस प्रकार (क्लास) है - .NET 2.0+ से उपलब्ध
  • ValueTuple<T1,T2> एक मान प्रकार (स्ट्रक्चर) है - .NET 4.7+ / C# 7.0+ से उपलब्ध
  • नए कोड के लिए ValueTuple (टपल लिटरल्स) का उपयोग करने की अनुशंसा
  • टपल अपरिवर्तनीय (immutable) होते हैं - निर्माण के बाद मान नहीं बदल सकते
  • अधिकतम 8 तत्वों तक सपोर्ट (Tuple<T1...T8>), ValueTuple में कोई सीमा नहीं
  1. - C# में टपल पर इटरेट करना

    टपल एलिमेंट्स एक्सेस करना टपल घोषित करें और वैल्यूज़ जोड़ें: Tuple<int, string> tuple = new Tuple<int, string>(100, Tom); व्यक्तिगत एलिमेंट्स एक्सेस करें: tuple.Item1 // पहला आइटम (100) tuple.Item2 // दूसरा आइटम (Tom) पूरा टपल डिस्प्ले करने के लिए: Console.WriteLine(tuple); पूर्ण को

  1. - नॉन-लिटरल पायथन टुपल कैसे बनाएं?

    आप पहले एक लिस्ट बना सकते हैं फिर उस सिंगल वैल्यू को बदलें जिसे आप बदलना चाहते हैं, फिर अंत में यदि आप नॉन-लिटरल पायथन टुपल बनाना चाहते हैं तो उसे टुपल में कन्वर्ट करें। उदाहरण के लिए: def create_non_literal_tuple(a, b, c): x = [1] * a x[c] = b return tuple(x) create_non_literal_tuple(

  1. - Python में खाली टपल कैसे बनाएं?

    आप असाइनमेंट स्टेटमेंट में पैरेंथेसिस में कोई एलिमेंट न देकर खाली टपल ऑब्जेक्ट बना सकते हैं। खाली टपल ऑब्जेक्ट `tuple()` बिल्ट-इन फंक्शन से बिना किसी तर्क के भी बनाया जाता है। >>> T1 = () >>> T1 () >>> T1 = tuple() >>> T1 ()