কম্পিউটার টিউটোরিয়াল

C#-তে OrderBy এবং GroupBy কীভাবে ব্যবহার করবেন?

OrderBy - সাজানোর জন্য

OrderBy অ্যারে বা কালেকশনকে আরোহী (Ascending) বা অবরোহী (Descending) ক্রমে সাজানোর জন্য ব্যবহৃত হয়।

GroupBy - গোষ্ঠীবদ্ধ করার জন্য

GroupBy গ্রুপিং অপারেটর ক্যাটেগরির অন্তর্গত। এটি একটি ফ্ল্যাট সিকোয়েন্সের আইটেম लेकर, নির্দিষ্ট কী (Key) alapján সেগুলো গ্রুপ করে IGrouping<K,V> আকারে ফেরত দেয়।

উদাহরণ: GroupBy এবং OrderBy একসাথে

class ElectronicGoods {
    public int Id { get; set; }
    public string Name { get; set; }
    public string Category { get; set; }
    
    public static List<ElectronicGoods> GetElectronicItems() {
        return new List<ElectronicGoods>() {
            new ElectronicGoods { Id = 1, Name = "Mobile", Category = "Phone" },
            new ElectronicGoods { Id = 2, Name = "LandLine", Category = "Phone" },
            new ElectronicGoods { Id = 3, Name = "Television", Category = "TV" },
            new ElectronicGoods { Id = 4, Name = "Grinder", Category = "Food" },
            new ElectronicGoods { Id = 5, Name = "Mixer", Category = "Food" }
        };
    }
}

class Program {
    static void Main() {
        // Group by Category, তারপর প্রতিটি গ্রুপে Name দিয়ে OrderBy
        var result = ElectronicGoods.GetElectronicItems()
            .GroupBy(x => x.Category)
            .Select(g => new {
                Key = g.Key,
                Items = g.OrderBy(c => c.Name)
            });
        
        foreach (var group in result) {
            Console.WriteLine($"{group.Key} - {group.Items.Count()}");
            Console.WriteLine("----------");
            foreach (var item in group.Items) {
                Console.WriteLine($"{item.Name}\t{item.Category}");
            }
            Console.WriteLine();
        }
    }
}

আউটপুট:

Food - 2
----------
Grinder    Food
Mixer      Food

Phone - 2
----------
LandLine   Phone
Mobile     Phone

TV - 1
----------
Television TV

উদাহরণ: শুধু OrderBy

var result = ElectronicGoods.GetElectronicItems()
    .OrderBy(x => x.Category);

foreach (var item in result) {
    Console.WriteLine($"{item.Name}\t{item.Category}");
}

আউটপুট:

Grinder    Food
Mixer      Food
LandLine   Phone
Mobile     Phone
Television TV

উপযোগী টিপস

  • OrderByDescending() ব্যবহার করে অবরোহী ক্রম পাওয়া যায়
  • ThenBy() দিয়ে সেকেন্ডারি সোর্টিং করা যায়
  • GroupBy-র ফলাফলে Key প্রোপার্টিতে গ্রুপের কী এবং Count() দিয়ে সদস্য সংখ্যা পাওয়া যায়
  1. উইন্ডোজ গ্রুপ পলিসি: এটি কী এবং কীভাবে ব্যবহার করবেন

  2. গুগল ক্রোমে ট্যাব গ্রুপস ব্যবহার করার পদ্ধতি

  3. Google Chrome ট্যাব গ্রুপস মास্টার করুন: ব্রাউজিং দক্ষতার সাথে অর্গানাইজ করুন

  4. Chrome Tab Groups মাস্টার করুন: ব্রাউজার ট্যাব সংগঠিত, নাম দিন এবং কোলাপ্স করুন