प्रोग्रामिंग में सरणियों को क्रमबद्ध करना एक मौलिक ऑपरेशन है। C# सरणियों को क्रमबद्ध करने के कई कुशल तरीके प्रदान करता है, जिसमें अवरोही क्रम भी शामिल है। यह लेख दो प्राथमिक तरीकों का पता लगाता है: Array.Sort()
और Array.Reverse()
का उपयोग करना, और LINQ के OrderByDescending()
विधि का उपयोग करना।
विषयसूची
Array.Sort()
और Array.Reverse()
के साथ क्रमबद्ध करना
Array.Sort()
विधि, डिफ़ॉल्ट रूप से, एक सरणी को आरोही क्रम में क्रमबद्ध करती है। अवरोही क्रम प्राप्त करने के लिए, हम पहले आरोही क्रम में क्रमबद्ध करते हैं और फिर Array.Reverse()
का उपयोग करके सरणी को उलट देते हैं। यह पूर्णांकों या स्ट्रिंग्स जैसे सरल डेटा प्रकारों के लिए कुशल है।
using System;
public class SortArrayDescending
{
public static void Main(string[] args)
{
int[] numbers = { 5, 2, 8, 1, 9, 4 };
Array.Sort(numbers); // आरोही क्रम में क्रमबद्ध करें
Array.Reverse(numbers); // अवरोही क्रम के लिए उलट दें
Console.WriteLine("अवरोही क्रम में क्रमबद्ध सरणी:");
foreach (int number in numbers)
{
Console.Write(number + " ");
}
// Output: 9 8 5 4 2 1
}
}
यह संक्षेप में तकनीक का प्रदर्शन करता है। प्रारंभिक आरोही क्रम के बाद उलटाव वांछित अवरोही क्रम प्रदान करता है।
OrderByDescending()
के साथ क्रमबद्ध करना
अधिक जटिल परिदृश्यों के लिए, विशेष रूप से कस्टम ऑब्जेक्ट के साथ काम करते समय या अधिक परिष्कृत क्रमबद्ध मानदंडों की आवश्यकता होने पर, LINQ की OrderByDescending()
विधि अधिक लचीलापन प्रदान करती है। यह विधि क्रमबद्ध तर्क को परिभाषित करने के लिए लैम्ब्डा अभिव्यक्तियों का उपयोग करती है।
using System;
using System.Linq;
public class SortArrayDescendingLinq
{
public static void Main(string[] args)
{
int[] numbers = { 5, 2, 8, 1, 9, 4 };
var sortedNumbers = numbers.OrderByDescending(x => x).ToArray();
Console.WriteLine("अवरोही क्रम में क्रमबद्ध सरणी:");
foreach (int number in sortedNumbers)
{
Console.Write(number + " ");
}
// Output: 9 8 5 4 2 1
// कस्टम ऑब्जेक्ट के साथ उदाहरण
var people = new[]
{
new Person { Name = "Alice", Age = 30 },
new Person { Name = "Bob", Age = 25 },
new Person { Name = "Charlie", Age = 35 }
};
var sortedPeopleByAge = people.OrderByDescending(p => p.Age).ToArray();
Console.WriteLine("nआयु के अनुसार अवरोही क्रम में क्रमबद्ध लोग:");
foreach (var person in sortedPeopleByAge)
{
Console.WriteLine($"{person.Name}: {person.Age}");
}
// Output: Charlie: 35, Alice: 30, Bob: 25
}
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
}
उदाहरण एक पूर्णांक सरणी और आयु के अनुसार कस्टम Person
ऑब्जेक्ट्स की एक सरणी दोनों को क्रमबद्ध करना दर्शाता है। ध्यान दें कि OrderByDescending()
एक IOrderedEnumerable<T>
देता है, जिसके लिए ToArray()
का उपयोग करके एक सरणी में रूपांतरण की आवश्यकता होती है। यह दृष्टिकोण अत्यधिक पठनीय और विभिन्न क्रमबद्ध आवश्यकताओं के अनुकूल है, हालांकि यह सरल डेटा प्रकारों के लिए पहली विधि की तुलना में थोड़ा अधिक ओवरहेड पेश कर सकता है।
इन विधियों के बीच चयन आपकी विशिष्ट आवश्यकताओं और डेटा जटिलता पर निर्भर करता है। सरल डेटा प्रकारों के लिए, Array.Sort()
और Array.Reverse()
दक्षता प्रदान करते हैं। जटिल ऑब्जेक्ट और लचीले क्रमबद्ध मानदंडों के लिए, OrderByDescending()
एक अधिक शक्तिशाली और पठनीय समाधान प्रदान करता है।