C# अकादमी · पाठ

List और Tuple Patterns

संग्रहों को अलग-अलग घटकों में बाँटें।

पाठ 4, कुल 4 में से13 चरण

List और Tuple Patterns, CoddyKit पर C# अकादमी का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह C# अकादमी सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। C# अकादमी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

टपल पैटर्न

टपल पैटर्न कई मानों को कोष्ठक में रखकर एक साथ मिलान करता है। प्रत्येक स्थान का मिलान अपने अलग उप-पैटर्न से होता है।

यह उन निर्णयों के लिए आदर्श है जो कई इनपुट पर निर्भर करते हैं, जैसे एक छोटी अवस्था मशीन या पत्थर-कागज़-कैंची का निर्णायक, वह भी एक ही स्विच में।

int x = 0, y = 5;
string quadrant = (x, y) switch
{
    (0, 0) => "origin",
    (0, _) => "y-axis",
    (_, 0) => "x-axis",
    _ => "plane"
};
System.Console.WriteLine(quadrant);

चलने योग्य टपल स्विच

टपल पैटर्न निर्णय सारणियों को पठनीय बनाते हैं। यहाँ दो बूलियन मान किसी क्रिया का चयन करते हैं।

प्रत्येक शाखा में टपल पैटर्न दिया गया है, और किसी स्थान पर मौजूद उपेक्षा-चिह्न _ का अर्थ है कि उस स्थान पर कोई भी मान हो सकता है। अंतिम _ शाखा बाकी सभी स्थितियों को समेटती है।

using System;

class Program {
    static string Move(bool fwd, bool turn) => (fwd, turn) switch {
        (true, false) => "straight",
        (true, true) => "curve",
        (false, true) => "spin",
        _ => "stop"
    };
    static void Main() => Console.WriteLine(Move(true, true));
}

टपल के भीतर मान बाँधना

टपल पैटर्न के स्थान मानों को ग्रहण कर सकते हैं। (0, var y) तब मेल खाता है जब पहला आइटम 0 हो और दूसरे को y से बाँध दिया जाए।

इसके बाद आप बाँधे गए चर का उपयोग शाखा के परिणाम में या when गार्ड में कर सकते हैं, जिससे एक ही चरण में मिलान और मान निकालना संभव होता है।

var point = (0, 7);
string r = point switch
{
    (0, var y) => $"on y-axis at {y}",
    (var x, 0) => $"on x-axis at {x}",
    _ => "elsewhere"
};
System.Console.WriteLine(r);

सूची पैटर्न

सूची पैटर्न वर्गाकार कोष्ठकों में लिखे गए तत्वों के आधार पर सरणियों और सूचियों का मिलान करता है: [1, 2, 3]। यह तभी मेल खाता है जब लंबाई और प्रत्येक तत्व का पैटर्न एक-दूसरे से मेल खाएँ।

C# 11 में प्रस्तुत सूची पैटर्न आपको लंबाई और इंडेक्स की मैन्युअल जाँच किए बिना सीधे अनुक्रम की संरचना के आधार पर अलग-अलग शाखाएँ चुनने देते हैं।

int[] data = { 1, 2, 3 };
string shape = data switch
{
    [] => "empty",
    [_] => "one",
    [_, _] => "two",
    _ => "many"
};
System.Console.WriteLine(shape);

सटीक तत्वों का मिलान

सूची पैटर्न प्रत्येक स्थान पर विशिष्ट मानों का मिलान कर सकते हैं। [1, 2, 3] केवल उसी सटीक तीन-तत्व वाले अनुक्रम से मेल खाता है।

स्थिर मानों और उपेक्षा-चिह्नों को स्वतंत्र रूप से मिलाएँ: [1, _, 3] ऐसी तीन-तत्व वाली सूची से मेल खाता है जो 1 से शुरू होती है और 3 पर समाप्त होती है, जबकि बीच के तत्व को अनदेखा कर दिया जाता है।

using System;

class Program {
    static void Main() {
        int[] a = { 1, 9, 3 };
        bool ok = a is [1, _, 3];
        Console.WriteLine(ok);
    }
}

स्लाइस पैटर्न

स्लाइस पैटर्न .. किसी एक स्थान पर शून्य सहित कितनी भी संख्या में तत्वों से मेल खाता है। किसी सूची पैटर्न में अधिकतम एक स्लाइस हो सकता है।

[1, .., 9] ऐसी किसी भी सूची से मेल खाता है जो 1 से शुरू होती है और 9 पर समाप्त होती है, चाहे इनके बीच कुछ भी हो। यह head और tail की जाँच के लिए बहुत उपयोगी है।

int[] nums = { 1, 4, 5, 9 };
string r = nums switch
{
    [1, .., 9] => "1..9 bookends",
    _ => "other"
};
System.Console.WriteLine(r);

स्लाइस को ग्रहण करना

आप var का उपयोग करके छोड़े गए तत्वों को किसी चर में सहेज सकते हैं: [first, .. var rest]।

ग्रहण किया गया भाग स्वयं मिलान किए गए प्रकार की सरणी या सूची होता है। इससे आप head तत्व को अलग निकाल सकते हैं और tail को आगे की प्रक्रिया के लिए रख सकते हैं।

using System;

class Program {
    static void Main() {
        int[] xs = { 10, 20, 30, 40 };
        if (xs is [var head, .. var tail])
            Console.WriteLine($"{head} then {tail.Length} more");
    }
}

किनारे के तत्वों को बाँधना

आप स्लाइस के दोनों ओर के मान बाँध सकते हैं: [var first, .., var last] बीच के तत्वों को अनदेखा करते हुए पहले और अंतिम तत्वों को ग्रहण करता है।

यह उन अनुक्रमों के लिए संक्षिप्त तरीका है जिनमें केवल सीमाएँ महत्वपूर्ण होती हैं, जैसे यह जाँचना कि कोई मार्ग ज्ञात point से शुरू होकर किसी ज्ञात point पर समाप्त होता है।

using System;

class Program {
    static void Main() {
        string[] route = { "A", "B", "C", "D" };
        if (route is [var start, .., var end])
            Console.WriteLine($"{start} -> {end}");
    }
}

उप-पैटर्न वाले सूची पैटर्न

सूची का प्रत्येक स्थान किसी भी पैटर्न का उपयोग कर सकता है, जिसमें संबंधपरक और तार्किक पैटर्न भी शामिल हैं। [> 0, > 0] दो धनात्मक मानों वाली दो-तत्वीय सूची से मेल खाता है।

इससे पैटर्न के पूरे उपकरण-संग्रह को अनुक्रम मिलान में जोड़ा जा सकता है, इसलिए आप एक ही व्यंजक में संरचना और सामग्री दोनों की जाँच कर सकते हैं।

int[] pair = { 3, 8 };
string r = pair switch
{
    [> 0, > 0] => "both positive",
    [_, _] => "mixed",
    _ => "wrong size"
};
System.Console.WriteLine(r);

टपल और सूचियों को नेस्ट करना

टपल और सूची पैटर्न एक-दूसरे के भीतर तथा गुणधर्म पैटर्न के अंदर भी समाहित किए जा सकते हैं। टपल का कोई स्थान सूची पैटर्न रख सकता है और इसका उलटा भी संभव है।

इससे आप कई अलग-अलग जाँच करने के बजाय एक ही व्यंजक में जटिल संरचित डेटा, जैसे लेबलयुक्त अनुक्रम, का मिलान कर सकते हैं।

using System;

class Program {
    static void Main() {
        (string, int[]) record = ("primes", new[]{ 2, 3 });
        string r = record switch {
            ("primes", [2, ..]) => "starts with 2",
            _ => "other"
        };
        Console.WriteLine(r);
    }
}

सूची पैटर्न के लिए आवश्यकताएँ

सूची पैटर्न किसी भी ऐसे प्रकार पर काम करते हैं जो गणनीय और इंडेक्स-योग्य हो: उसमें Length या Count गुणधर्म और एक इंडेक्सर होना चाहिए। सरणियाँ, List<T> और पाठ-श्रृंखलाएँ इसके योग्य हैं।

स्लाइस को ग्रहण करने के लिए अतिरिक्त रूप से स्लाइस विधि या रेंज इंडेक्सर आवश्यक है। अधिकांश अंतर्निहित संग्रह दोनों का पहले से समर्थन करते हैं।

string s = "cat";
bool isCat = s is ['c', 'a', 't'];
System.Console.WriteLine(isCat);

त्वरित जाँच

सूची और टपल पैटर्न की अपनी समझ का परीक्षण करें।

पुनरावलोकन

टपल पैटर्न कोष्ठकों में कई मानों का मिलान करते हैं; सूची पैटर्न वर्गाकार कोष्ठकों में अनुक्रम की संरचना का मिलान करते हैं, जहाँ .. ऐसा स्लाइस है जो var के माध्यम से बीच के भाग को ग्रहण कर सकता है।

स्थान किसी भी उप-पैटर्न को स्वीकार करते हैं और उन्हें स्वतंत्र रूप से एक-दूसरे के भीतर समाहित किया जा सकता है। सूची पैटर्न के लिए गणनीय और इंडेक्स-योग्य प्रकार आवश्यक है। अब आप C# के पूरे पैटर्न उपकरण-संग्रह का उपयोग कर सकते हैं।

शुरुआत निःशुल्क

एआई शिक्षक के साथ C# सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
93
पाठ
346

अक्सर पूछे जाने वाले प्रश्न

क्या “List और Tuple Patterns” पाठ निःशुल्क है?

हाँ—“List और Tuple Patterns” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और C# अकादमी पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। C# अकादमी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“List और Tuple Patterns” में मैं क्या सीखूँगा?

संग्रहों को अलग-अलग घटकों में बाँटें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ C# अकादमी का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या C# अकादमी शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर C# अकादमी शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“List और Tuple Patterns” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस C# अकादमी पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर C# अकादमी पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. switch Expressions
  2. Type और Property Patterns
  3. Relational और Logical Patterns
  4. List और Tuple Patterns
← C# अकादमी पर वापस जाएँ