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

C# में orderby कीवर्ड से सूची सॉर्ट करना


C# में LINQ क्वेरी सिंटैक्स का orderby क्लॉज किसी संग्रह (collection) के तत्वों को आरोही (ascending) या अवरोही (descending) क्रम में सॉर्ट करने के लिए उपयोग किया जाता है।

उदाहरण: स्ट्रिंग लंबाई के आधार पर सॉर्टिंग

using System;
using System.Collections.Generic;
using System.Linq;

class Demo
{
    static void Main()
    {
        List vehicles = new List();
        vehicles.Add("truck");
        vehicles.Add("bus");
        vehicles.Add("bicycle");
        vehicles.Add("motorbike");
        
        Console.WriteLine("मूल सूची:");
        foreach (string v in vehicles)
            Console.WriteLine($"  {v} ({v.Length} अक्षर)");
        
        // आरोही क्रम (ascending - डिफॉल्ट)
        var ascendingOrder = from vehicle in vehicles
                             orderby vehicle.Length
                             select vehicle;
        
        Console.WriteLine("\nआरोही क्रम (लंबाई के अनुसार):");
        foreach (string v in ascendingOrder)
            Console.WriteLine($"  {v} ({v.Length})");
        
        // अवरोही क्रम (descending)
        var descendingOrder = from vehicle in vehicles
                              orderby vehicle.Length descending
                              select vehicle;
        
        Console.WriteLine("\nअवरोही क्रम (लंबाई के अनुसार):");
        foreach (string v in descendingOrder)
            Console.WriteLine($"  {v} ({v.Length})");
        
        // एकाधिक सॉर्टिंग मानदंड (ThenBy के समतुल्य)
        var multiSort = from vehicle in vehicles
                        orderby vehicle.Length, vehicle  // पहले लंबाई, फिर वर्णानुक्रम
                        select vehicle;
        
        Console.WriteLine("\nबहु-स्तरीय सॉर्टिंग (लंबाई फिर वर्णानुक्रम):");
        foreach (string v in multiSort)
            Console.WriteLine($"  {v} ({v.Length})");
    }
}

आउटपुट

मूल सूची:
  truck (5 अक्षर)
  bus (3 अक्षर)
  bicycle (7 अक्षर)
  motorbike (9 अक्षर)

आरोही क्रम (लंबाई के अनुसार):
  bus (3)
  truck (5)
  bicycle (7)
  motorbike (9)

अवरोही क्रम (लंबाई के अनुसार):
  motorbike (9)
  bicycle (7)
  truck (5)
  bus (3)

बहु-स्तरीय सॉर्टिंग (लंबाई फिर वर्णानुक्रम):
  bus (3)
  truck (5)
  bicycle (7)
  motorbike (9)

मेथड सिंटैक्स (Method Syntax) के साथ तुलना

// मेथड सिंटैक्स - समान परिणाम
var ascendingMethod = vehicles.OrderBy(v => v.Length);
var descendingMethod = vehicles.OrderByDescending(v => v.Length);
var multiSortMethod = vehicles.OrderBy(v => v.Length).ThenBy(v => v);

कस्टम ऑब्जेक्ट्स के साथ सॉर्टिंग

public class Student
{
    public string Name { get; set; }
    public int Age { get; set; }
    public double Grade { get; set; }
}

var students = new List
{
    new Student { Name = "अमित", Age = 20, Grade = 85.5 },
    new Student { Name = "प्रिया", Age = 19, Grade = 92.0 },
    new Student { Name = "राहुल", Age = 20, Grade = 78.5 }
};

// उम्र के अनुसार आरोही, फिर ग्रेड के अनुसार अवरोही
var sorted = from s in students
             orderby s.Age ascending, s.Grade descending
             select s;

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

  • orderby डिफॉल्ट रूप से आरोही क्रम (ascending) में सॉर्ट करता है
  • descending कीवर्ड अवरोही क्रम के लिए उपयोग करें
  • कॉमा (,) से अलग करके एकाधिक सॉर्टिंग कुंजियां निर्दिष्ट करें (ThenBy के समतुल्य)
  • सॉर्टिंग स्थिर (stable) है - समान कुंजी वाले तत्वों का सापेक्ष क्रम बना रहता है
  • मूल संग्रह अपरिवर्तित रहता है; नया अनुक्रम लौटाया जाता है
  • System.Linq नेमस्पेस आवश्यक है
  1. - C# में static कीवर्ड

    हम static कीवर्ड का उपयोग करके क्लास मेंबर्स को static परिभाषित कर सकते हैं। जब हम किसी क्लास के मेंबर को static घोषित करते हैं, तो इसका मतलब है कि चाहे क्लास के कितने भी ऑब्जेक्ट्स बनाए जाएं, static मेंबर की केवल एक ही कॉपी मौजूद होती है।कीवर्ड static का तात्पर्य है कि क्लास के लिए मेंबर का केवल एक

  1. - C# में abstract कीवर्ड

    C# में abstract कीवर्ड का उपयोग एब्स्ट्रैक्ट क्लासेस के लिए किया जाता है। C# में एक एब्स्ट्रैक्ट क्लास में एब्स्ट्रैक्ट और नॉन-एब्स्ट्रैक्ट दोनों मेथड्स शामिल हो सकते हैं। आप एब्स्ट्रैक्ट क्लास को इंस्टेंटिएट नहीं कर सकते। एब्स्ट्रैक्ट क्लास Vehicle और एब्स्ट्रैक्ट मेथड display() का उदाहरण: publi

  1. - C# में 'this' कीवर्ड

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