C#-এ স্ট্রিং অ্যারে বা লিস্টকে লেক্সিকোগ্রাফিক্যাল (শব্দকোষের অক্ষরানুক্রমিক) অর্ডারে সর্ট করা খুব সহজ। আপনি LINQ কোয়েরি সিনট্যাক্স বা মেথড সিনট্যাক্স দুটোই ব্যবহার করতে পারেন।
প্রাথমিক সেটআপ
string[] arr = new string[] { "Indian", "Moroccan", "American" };
পদ্ধতি ১: LINQ কোয়েরি সিনট্যাক্স
var sorted = from a in arr
orderby a
select a;
পদ্ধতি ২: LINQ মেথড সিনট্যাক্স (আধুনিক ও সংক্ষিপ্ত)
var sorted = arr.OrderBy(a => a);
সম্পূর্ণ উদাহরণ
using System;
using System.Linq;
class Program
{
static void Main()
{
string[] arr = new string[] { "Indian", "Moroccan", "American" };
Console.WriteLine("মূল অ্যারে:");
foreach (string s in arr)
Console.WriteLine(s);
// LINQ মেথড সিনট্যাক্স ব্যবহার
var sorted = arr.OrderBy(a => a);
Console.WriteLine("\nসর্ট করা (লেক্সিকোগ্রাফিক্যাল):");
foreach (string res in sorted)
{
Console.WriteLine(res);
}
}
}
আউটপুট
মূল অ্যারে:
Indian
Moroccan
American
সর্ট করা (লেক্সিকোগ্রাফিক্যাল):
American
Indian
Moroccan
এডভান্সড সর্টিং অপশন
অবরোহী ক্রম (Descending)
var sortedDesc = arr.OrderByDescending(a => a);
কেস-ইনসেনসিটিভ সর্টিং
var sortedCI = arr.OrderBy(a => a, StringComparer.OrdinalIgnoreCase);
কাস্টম কালচার অনুযায়ী সর্টিং
using System.Globalization;
var culture = new CultureInfo("bn-BD");
var sortedBN = arr.OrderBy(a => a, culture.CompareInfo.GetStringComparer(CompareOptions.None));
তবে মূল অ্যারে সর্ট করা (In-place)
Array.Sort(arr); // মূল অ্যারেটাই সর্ট হয়ে যাবে
পারফরম্যান্স নোট
OrderByএকটি নতুন সিকোয়েন্স রিটার্ন করে (লেজি ইভ্যালুয়েশন)।Array.Sortইন-প্লেস সর্ট করে, মেমরি দক্ষ।- ছোট অ্যারের জন্য পারফরম্যান্স পার্থক্য নগণ্য।