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

C# में TakeWhile() मेथड का उपयोग


C# में TakeWhile() मेथड System.Linq नेमस्पेस का एक एक्सटेंशन मेथड है जो किसी अनुक्रम से तब तक तत्व लौटाता है जब तक कि निर्दिष्ट शर्त (predicate) सत्य रहती है। जैसे ही शर्त असत्य होती है, तत्वों को लेना बंद कर दिया जाता है।

उदाहरण

मान लीजिए हमारे पास निम्न सरणी है:

int[] arr = { 25, 40, 65, 70 };

30 से छोटे तत्वों को लेना (पहले तत्व से शुरू करके जब तक शर्त पूरी होती है):

var result = arr.TakeWhile(element => element < 30);

पूर्ण कोड उदाहरण

using System;
using System.Linq;

public class Demo
{
    public static void Main()
    {
        int[] arr = { 25, 40, 65, 70 };
        
        // 30 से छोटे तत्व लें (केवल पहला तत्व 25 ही शर्त पूरी करता है)
        var values = arr.TakeWhile(element => element < 30);
        
        Console.WriteLine("30 से छोटे तत्व:");
        foreach (int item in values)
        {
            Console.WriteLine(item);
        }
        
        // एक और उदाहरण: स्ट्रिंग सरणी के साथ
        string[] fruits = { "apple", "apricot", "banana", "avocado" };
        var aFruits = fruits.TakeWhile(f => f.StartsWith("a"));
        
        Console.WriteLine("\n'a' से शुरू होने वाले फल (लगातार):");
        foreach (string fruit in aFruits)
        {
            Console.WriteLine(fruit);
        }
    }
}

आउटपुट

30 से छोटे तत्व:
25

'a' से शुरू होने वाले फल (लगातार):
apple
apricot

TakeWhile() बनाम Where()

मेथडव्यवहार
TakeWhile()पहले तत्व से शुरू करके लगातार तत्व लेता है जब तक शर्त सत्य है
Where()पूरे अनुक्रम को फ़िल्टर करता है, सभी मेल खाने वाले तत्व लौटाता है

उपरोक्त उदाहरण में, Where(f => f.StartsWith("a")) से "apple", "apricot", "avocado" तीनों मिलते, लेकिन TakeWhile() केवल पहले दो को लौटाता है क्योंकि "banana" शर्त तोड़ देता है।

महत्वपूर्ण बिंदु

  • TakeWhile() डिफर्ड एक्जीक्यूशन का उपयोग करता है
  • दूसरा ओवरलोड इंडेक्स भी प्रदान करता है: TakeWhile((element, index) => ...)
  • यदि पहला तत्व ही शर्त पूरी नहीं करता, तो खाली अनुक्रम लौटाया जाता है
  1. - C# में GroupBy() विधि

    GroupBy() एक एक्सटेंशन विधि है जो दिए गए संग्रह से कुछ कुंजी मान के आधार पर तत्वों का एक समूह लौटाती है। निम्न हमारी सरणी है: int[] arr = { 2, 30, 45, 60, 70 }; अब, हम 50 से छोटे तत्वों को समूहित करने के लिए GroupBy() का उपयोग करेंगे: chkSmaller(b)); उपरोक्त chkSmaller() 50 से छोटे तत्वों को ढूंढता

  1. - C# में CompareTo() विधि

    दो मानों की तुलना करने के लिए, CompareTo() विधि का उपयोग करें। निम्न वापसी मान हैं: 0 = दोनों संख्याएं बराबर हैं 1 = दूसरी संख्या छोटी है -1 = पहली संख्या छोटी है C# में CompareTo() विधि को लागू करने का कोड यहां है: उदाहरण using System; public class Demo { public static void Main() {

  1. - रूबी के Array#zip में महारत: कुशल सरणी जोड़ी और तुलना

    मान लीजिए कि आप दो सरणियों की तुलना करना चाहते हैं, तत्व दर तत्व ताकि आप अंतर ढूंढ सकें। या शायद आप हर इंडेक्स पर सबसे बड़ी संख्या ढूंढना चाहते हैं, या आप केवल कुंजियों की सूची और मानों की सूची को मर्ज करके एक हैश बनाना चाहते हैं… …इसे करने का कठिन तरीका ऐसा कुछ दिखेगा। उदाहरण: a = [1,2,3,4,5] b =