LINQ-এ অর্ডারিং কুয়েরি অপারেশন ডেটাকে নির্দিষ্ট ক্রমে সাজানোর জন্য ব্যবহৃত হয়। OrderBy এবং OrderByDescending হল দুটি প্রধান LINQ অপারেটর যা ডেটাকে যথাক্রমে Ascending (বৃদ্ধি) বা Descending (হ্রাস) অর্ডারে সাজাতে ব্যবহৃত হয়।
OrderBy কুয়েরি অপারেটর ডেটাকে Ascending Order বা ছোট থেকে বড় (কম থেকে বেশি) সাজানোর জন্য ব্যবহৃত হয়। এটি সাধারণত সংখ্যার বা অক্ষরের ক্রম অনুযায়ী ডেটা সাজানোর জন্য ব্যবহার করা হয়।
ধরা যাক, আমাদের একটি Customer ক্লাস রয়েছে এবং আমরা Customer লিস্টের মধ্যে Age ফিল্ড অনুযায়ী ক্রমবর্ধমানভাবে সাজাতে চাই:
public class Customer
{
public string Name { get; set; }
public int Age { get; set; }
}
List<Customer> customers = new List<Customer>
{
new Customer { Name = "Alice", Age = 30 },
new Customer { Name = "Bob", Age = 25 },
new Customer { Name = "Charlie", Age = 35 }
};
// OrderBy ব্যবহার করে Ascending Order এ সাজানো
var orderedCustomers = customers.OrderBy(c => c.Age);
foreach (var customer in orderedCustomers)
{
Console.WriteLine($"{customer.Name}, Age: {customer.Age}");
}
আউটপুট:
Bob, Age: 25
Alice, Age: 30
Charlie, Age: 35
এখানে OrderBy Age
অনুযায়ী Ascending Order-এ ডেটা সাজাচ্ছে।
OrderByDescending কুয়েরি অপারেটর ডেটাকে Descending Order বা বড় থেকে ছোট (বেশি থেকে কম) সাজানোর জন্য ব্যবহৃত হয়।
ধরা যাক, এবার আমরা Age ফিল্ড অনুযায়ী ডেটাকে Descending Order-এ সাজাতে চাই:
// OrderByDescending ব্যবহার করে Descending Order এ সাজানো
var orderedCustomersDesc = customers.OrderByDescending(c => c.Age);
foreach (var customer in orderedCustomersDesc)
{
Console.WriteLine($"{customer.Name}, Age: {customer.Age}");
}
আউটপুট:
Charlie, Age: 35
Alice, Age: 30
Bob, Age: 25
এখানে OrderByDescending Age
অনুযায়ী Descending Order-এ ডেটা সাজাচ্ছে, অর্থাৎ বড় থেকে ছোট।
কখনও কখনও, একাধিক শর্তে ডেটা সাজানো প্রয়োজন হয়, যেমন প্রথমে একটি ফিল্ডের উপর এবং তারপর অন্য একটি ফিল্ডের উপর অর্ডারিং করা। LINQ এ একাধিক শর্তে অর্ডারিং করার জন্য ThenBy এবং ThenByDescending ব্যবহার করা যায়।
var orderedCustomersMulti = customers
.OrderBy(c => c.Age) // প্রথমে Age অনুযায়ী Ascending Order
.ThenBy(c => c.Name); // এরপর Name অনুযায়ী Ascending Order
foreach (var customer in orderedCustomersMulti)
{
Console.WriteLine($"{customer.Name}, Age: {customer.Age}");
}
আউটপুট:
Bob, Age: 25
Alice, Age: 30
Charlie, Age: 35
এখানে প্রথমে Age অনুযায়ী Ascending Order-এ সাজানো হয়েছে, এবং তারপর Name অনুযায়ী Ascending Order-এ সাজানো হয়েছে।
OrderBy এবং OrderByDescending LINQ-এ ডেটাকে ক্রম অনুযায়ী সাজানোর দুটি মূল অপারেটর। এগুলি Ascending এবং Descending অর্ডারে ডেটা সাজাতে ব্যবহৃত হয়, এবং একাধিক শর্তে সাজাতে ThenBy ও ThenByDescending ব্যবহার করা যায়। এগুলি LINQ কুয়েরি অপারেশনগুলোকে আরও শক্তিশালী এবং কার্যকরী করে তোলে।
common.read_more