C# Programming

C# में ऑब्जेक्ट्स की सूचियों को कुशलतापूर्वक क्रमबद्ध करना

Spread the love

किसी भी C# डेवलपर के लिए किसी विशिष्ट गुण के अनुसार ऑब्जेक्ट्स की सूचियों को कुशलतापूर्वक क्रमबद्ध करना एक महत्वपूर्ण कौशल है। यह लेख दो प्राथमिक तरीकों का पता लगाता है: LINQ के OrderBy मेथड का लाभ उठाना और डेलीगेट्स के साथ List<T>.Sort मेथड का उपयोग करना। हम प्रत्येक की ताकत और कमजोरियों की जांच करेंगे, जिससे आपको अपनी विशिष्ट आवश्यकताओं के लिए सर्वोत्तम विधि चुनने में मदद मिलेगी।

विषयवस्तु की तालिका

LINQ के OrderBy मेथड का उपयोग करना

LINQ का OrderBy मेथड सूचियों को क्रमबद्ध करने का एक स्वच्छ और पठनीय तरीका प्रदान करता है। यह क्रमबद्धता मानदंड निर्दिष्ट करने के लिए लैम्ब्डा एक्सप्रेशन का उपयोग करता है और एक नई क्रमबद्ध सूची देता है, मूल सूची को अछूता छोड़ देता है। यह आदर्श है जब आपको मूल डेटा को संरक्षित करने की आवश्यकता होती है।


public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public class Example
{
    public static void Main(string[] args)
    {
        List<Person> people = new List<Person>()
        {
            new Person { Name = "Alice", Age = 30 },
            new Person { Name = "Bob", Age = 25 },
            new Person { Name = "Charlie", Age = 35 }
        };

        // नाम (आरोही) द्वारा क्रमबद्ध करें
        var sortedByName = people.OrderBy(p => p.Name).ToList();

        Console.WriteLine("नाम से क्रमबद्ध:");
        PrintPeople(sortedByName);

        // आयु (अवरोही) द्वारा क्रमबद्ध करें
        var sortedByAgeDescending = people.OrderByDescending(p => p.Age).ToList();

        Console.WriteLine("nआयु (अवरोही) द्वारा क्रमबद्ध:");
        PrintPeople(sortedByAgeDescending);
    }

    static void PrintPeople(List<Person> people)
    {
        foreach (var person in people)
        {
            Console.WriteLine($"{person.Name}, {person.Age}");
        }
    }
}

List<T>.Sort के साथ डेलीगेट्स का उपयोग करना

अधिक नियंत्रण की मांग करने वाली या क्रमबद्धता तर्क के पुन: उपयोग की आवश्यकता वाली स्थितियों के लिए, डेलीगेट्स एक शक्तिशाली विकल्प प्रदान करते हैं। List<T>.Sort मेथड सूची को इन-प्लेस क्रमबद्ध करता है, मूल सूची को सीधे संशोधित करता है। यह बहुत बड़ी सूचियों के लिए अधिक कुशल हो सकता है, लेकिन याद रखें कि यह मूल डेटा को बदल देता है।


using System;
using System.Collections.Generic;

// ... ऊपर से Person क्लास ...

public class Example
{
    public static void Main(string[] args)
    {
        List<Person> people = new List<Person>()
        {
            new Person { Name = "Alice", Age = 30 },
            new Person { Name = "Bob", Age = 25 },
            new Person { Name = "Charlie", Age = 35 }
        };

        // एक डेलीगेट का उपयोग करके नाम (आरोही) द्वारा क्रमबद्ध करें
        people.Sort((p1, p2) => p1.Name.CompareTo(p2.Name));

        Console.WriteLine("नाम से क्रमबद्ध (इन-प्लेस):");
        PrintPeople(people);

        // एक डेलीगेट का उपयोग करके आयु (अवरोही) द्वारा क्रमबद्ध करें
        people.Sort((p1, p2) => p2.Age.CompareTo(p1.Age)); // अवरोही के लिए उल्टे क्रम पर ध्यान दें

        Console.WriteLine("nआयु (अवरोही, इन-प्लेस) द्वारा क्रमबद्ध:");
        PrintPeople(people);
    }
    // ... ऊपर से PrintPeople मेथड ...
}

सही मेथड चुनना

इष्टतम दृष्टिकोण आपकी विशिष्ट आवश्यकताओं पर निर्भर करता है:

  • OrderBy (LINQ): सरल क्रमबद्धता कार्यों के लिए आदर्श जहाँ मूल सूची को संरक्षित करना महत्वपूर्ण है। यह आम तौर पर अधिक पठनीय है।
  • List<T>.Sort (डेलीगेट्स के साथ): अधिक नियंत्रण प्रदान करता है और मूल सूची को संशोधित करने पर बहुत बड़ी सूचियों के लिए अधिक कुशल हो सकता है। जटिल तुलना तर्क या पुन: प्रयोज्य क्रमबद्धता कार्यों के लिए उपयोगी है।

अपना चयन करने से पहले ध्यान से विचार करें कि क्या आपको मूल सूची के क्रम को बनाए रखने की आवश्यकता है और आपके आवेदन के लिए प्रदर्शन निहितार्थ क्या हैं।

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *