LINQ এর Select ক্লজ একটি অত্যন্ত গুরুত্বপূর্ণ এবং জনপ্রিয় অপারেশন যা একটি সংগ্রহ থেকে নির্দিষ্ট উপাদান নির্বাচন করতে ব্যবহৃত হয়। Select ক্লজটি মূলত Projection Operation হিসাবে কাজ করে, যার মাধ্যমে আপনি একটি নতুন ডেটা সংগ্রহ তৈরি করতে পারেন যা মূল সংগ্রহের এক বা একাধিক উপাদান থেকে নির্বাচিত বা রূপান্তরিত তথ্য ধারণ করে।
Select ক্লজের মাধ্যমে আপনি:
Query Syntax-এ select
কিওয়ার্ড ব্যবহার করে আপনি ডেটা নির্বাচন করেন। এখানে ডেটার উপর কোনো পরিবর্তন বা ফিল্টার প্রয়োগ করতে পারেন এবং নতুন ডেটা গঠন করতে পারেন।
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
// প্রতি সংখ্যার গুণফল বের করা
var squares = from num in numbers
select num * num;
foreach (var square in squares)
{
Console.WriteLine(square); // Output: 1, 4, 9, 16, 25, 36
}
এখানে, select
ক্লজটি num * num করে প্রতিটি সংখ্যা থেকে তার গুণফল বের করেছে।
Method Syntax-এ Select()
মেথড ব্যবহার করা হয়, যা LINQ এর এক ধরনের ফাংশনাল স্টাইল। এটি Lambda Expressions ব্যবহার করে ডেটা নির্বাচন ও রূপান্তর করার সুবিধা দেয়।
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
// প্রতি সংখ্যার গুণফল বের করা
var squares = numbers.Select(num => num * num);
foreach (var square in squares)
{
Console.WriteLine(square); // Output: 1, 4, 9, 16, 25, 36
}
এখানে, Select(num => num * num)
মাধ্যমে প্রতিটি সংখ্যা তার গুণফলে রূপান্তরিত হয়েছে।
Select ক্লজ ব্যবহার করে আপনি নতুন কাস্টম অবজেক্ট তৈরি করতে পারেন, যা মূল অবজেক্টের প্রোপার্টি বা ফিল্ডের ভিত্তিতে নির্মিত হয়।
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Charlie", Age = 35 }
};
// কাস্টম অবজেক্ট তৈরি
var selectedPeople = people.Select(p => new { p.Name, AgeInFiveYears = p.Age + 5 });
foreach (var person in selectedPeople)
{
Console.WriteLine($"Name: {person.Name}, Age in 5 years: {person.AgeInFiveYears}");
}
এখানে, Select
ক্লজের মাধ্যমে একটি নতুন anonymous object তৈরি করা হয়েছে, যেখানে Name এবং AgeInFiveYears (এলিয়াস হিসেবে) ফিল্ড রয়েছে।
Select ক্লজ ব্যবহার করে আপনি একাধিক স্তরের (nested) ডেটা নির্বাচন করতে পারেন। এই পদ্ধতিতে একটি ডেটা অবজেক্টের মধ্যে থাকা অন্য ডেটা অবজেক্ট বা সংগ্রহের তথ্য নির্বাচন করা হয়।
List<Order> orders = new List<Order>
{
new Order { OrderId = 1, Customer = "Alice", Items = new List<string> { "Item1", "Item2" } },
new Order { OrderId = 2, Customer = "Bob", Items = new List<string> { "Item3", "Item4" } },
new Order { OrderId = 3, Customer = "Charlie", Items = new List<string> { "Item5", "Item6" } }
};
// প্রতিটি অর্ডারের আইটেমসমূহ নির্বাচন করা
var orderItems = orders.Select(o => new { o.Customer, Items = string.Join(", ", o.Items) });
foreach (var order in orderItems)
{
Console.WriteLine($"Customer: {order.Customer}, Items: {order.Items}");
}
এখানে Order ক্লাসের মধ্যে থাকা Items নামক লিস্ট থেকে প্রতিটি অর্ডারের আইটেমগুলো একত্রিত করে একটি নতুন তথ্য তৈরি করা হয়েছে।
Select
ক্লজ ব্যবহার করে আপনি স্ট্রিং ডেটার মধ্যে রূপান্তর করতে পারেন, যেমন স্ট্রিংয়ের অক্ষর পরিবর্তন বা স্ট্রিংয়ের অংশ নির্বাচন।
List<string> names = new List<string> { "alice", "bob", "charlie" };
// নামগুলো বড় হাতের অক্ষরে রূপান্তর করা
var upperNames = names.Select(name => name.ToUpper());
foreach (var name in upperNames)
{
Console.WriteLine(name); // Output: ALICE, BOB, CHARLIE
}
এখানে, প্রতিটি নামকে uppercase এ রূপান্তর করা হয়েছে Select
ক্লজের মাধ্যমে।
Select
ক্লজ ব্যবহার করে আপনি ডেটার উপর ভিত্তি করে গণনা বা মোট কিছু হিসাব করতে পারেন।
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
// সংখ্যাগুলোর মোট যোগফল বের করা
var totalSum = numbers.Select(num => num).Sum();
Console.WriteLine(totalSum); // Output: 21
এখানে, Select(num => num)
থেকে সমস্ত সংখ্যা নির্বাচন করে তাদের যোগফল বের করা হয়েছে।
Select ক্লজ LINQ এর একটি গুরুত্বপূর্ণ ফিচার, যা ডেটাকে ফিল্টার বা রূপান্তর করার জন্য ব্যবহৃত হয়। এটি ব্যবহারে ডেটার একাধিক শর্ত, কাস্টম অবজেক্ট তৈরি, এবং সংখ্যার বা স্ট্রিংয়ের উপর রূপান্তর করা সহজ এবং কার্যকর হয়।
common.read_more