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नेमस्पेस आवश्यक है