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()দিয়ে সদস্য সংখ্যা পাওয়া যায়