ফিল্টারিং এবং প্রজেকশন একত্রে ব্যবহার

Microsoft Technologies - লিংক (LinQ) LINQ এ ডেটা প্রজেকশন (Data Projection in LINQ) |
179
179

LINQ (Language Integrated Query) ব্যবহার করার সময়, আপনি ফিল্টারিং এবং প্রজেকশন একত্রে ব্যবহার করে আরও কার্যকরী এবং জটিল কুয়েরি তৈরি করতে পারেন।

  • ফিল্টারিং (Filtering) হল ডেটাসেট থেকে নির্দিষ্ট শর্তের ভিত্তিতে তথ্য নির্বাচন করা। LINQ এ এটি সাধারণত where ক্লজের মাধ্যমে করা হয়।
  • প্রজেকশন (Projection) হল ডেটার নির্দিষ্ট অংশ নির্বাচন বা পরিবর্তন করা, যেমন কোনো অবজেক্টের কিছু ফিল্ড নির্বাচন করা বা নতুন অবজেক্ট তৈরি করা।

এই দুটি কৌশল একত্রে ব্যবহার করলে, আপনি একটি ডেটাসেট থেকে নির্দিষ্ট শর্ত পূরণকারী তথ্য নির্বাচন করতে পারবেন এবং সেই তথ্যের কিছু অংশ বা রূপান্তরিত সংস্করণ প্রদর্শন করতে পারবেন।


ফিল্টারিং এবং প্রজেকশন একত্রে ব্যবহার

LINQ এর where ক্লজ এবং select ক্লজ ব্যবহার করে ফিল্টারিং এবং প্রজেকশন একত্রে করা যায়। নিচে একটি উদাহরণ দেয়া হল যেখানে একটি লিস্ট থেকে even numbers ফিল্টার করা হয়েছে এবং তারপর তাদের স্কয়ার (square) নেয়া হয়েছে।

উদাহরণ:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

// Filter (even numbers) এবং Projection (square) একত্রে ব্যবহার
var result = from num in numbers
             where num % 2 == 0          // ফিল্টারিং: even numbers
             select num * num;          // প্রজেকশন: স্কয়ার

foreach (var square in result)
{
    Console.WriteLine(square);  // Output: 4, 16, 36, 64, 100
}

এখানে:

  • where num % 2 == 0 শর্তটি ফিল্টারিং করতে ব্যবহৃত হয়েছে, যার মাধ্যমে শুধুমাত্র even numbers নির্বাচন করা হয়েছে।
  • select num * num হল প্রজেকশন, যা নির্বাচন করা সংখ্যাগুলোর স্কয়ার বের করছে।

আরও জটিল উদাহরণ: অবজেক্টের ফিল্টারিং এবং প্রজেকশন

ধরা যাক, আমাদের কাছে একটি Employee ক্লাস আছে এবং আমরা একটি তালিকা থেকে age 30 এর বেশি এমন কর্মীদের নাম এবং বয়স বের করতে চাই।

উদাহরণ:

public class Employee
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Position { get; set; }
}

List<Employee> employees = new List<Employee>
{
    new Employee { Name = "Alice", Age = 35, Position = "Manager" },
    new Employee { Name = "Bob", Age = 28, Position = "Developer" },
    new Employee { Name = "Charlie", Age = 42, Position = "CEO" },
    new Employee { Name = "David", Age = 25, Position = "Intern" },
};

// Filter (age > 30) এবং Projection (Name এবং Age) একত্রে ব্যবহার
var result = from emp in employees
             where emp.Age > 30            // ফিল্টারিং: age > 30
             select new { emp.Name, emp.Age };  // প্রজেকশন: Name এবং Age

foreach (var emp in result)
{
    Console.WriteLine($"Name: {emp.Name}, Age: {emp.Age}");
}

এখানে:

  • where emp.Age > 30 শর্তটি ফিল্টারিং করতে ব্যবহৃত হয়েছে, যার মাধ্যমে শুধুমাত্র 30 এর বেশি বয়সের কর্মী নির্বাচন করা হয়েছে।
  • select new { emp.Name, emp.Age } হল প্রজেকশন, যা শুধুমাত্র কর্মীর নাম এবং বয়স রিটার্ন করছে।

আউটপুট:

Name: Alice, Age: 35
Name: Charlie, Age: 42

একাধিক শর্তে ফিল্টারিং এবং প্রজেকশন

আপনি একাধিক শর্তও যোগ করতে পারেন, যেমন কর্মীর বয়স 30 এর বেশি হতে হবে এবং তার পদের নাম Manager অথবা CEO হতে হবে। এক্ষেত্রে ফিল্টারিং এবং প্রজেকশন একত্রে ব্যবহার করা হবে।

উদাহরণ:

var result = from emp in employees
             where emp.Age > 30 && (emp.Position == "Manager" || emp.Position == "CEO")  // একাধিক শর্ত
             select new { emp.Name, emp.Age, emp.Position };

foreach (var emp in result)
{
    Console.WriteLine($"Name: {emp.Name}, Age: {emp.Age}, Position: {emp.Position}");
}

আউটপুট:

Name: Alice, Age: 35, Position: Manager
Name: Charlie, Age: 42, Position: CEO

এখানে:

  • where emp.Age > 30 && (emp.Position == "Manager" || emp.Position == "CEO") একাধিক শর্তে ফিল্টারিং করা হয়েছে।
  • select new { emp.Name, emp.Age, emp.Position } দ্বারা প্রজেকশন করা হয়েছে, যাতে কর্মীর নাম, বয়স এবং পদের নাম রিটার্ন করা হয়।

সারাংশ

LINQ এ ফিল্টারিং এবং প্রজেকশন একত্রে ব্যবহার করা ডেটা কুয়েরি করার একটি শক্তিশালী উপায়। ফিল্টারিং (যেমন where ক্লজ ব্যবহার করে) আপনাকে নির্দিষ্ট শর্তে ডেটা নির্বাচন করতে সাহায্য করে, এবং প্রজেকশন (যেমন select ক্লজ ব্যবহার করে) আপনাকে ডেটার নির্দিষ্ট অংশ বা রূপান্তরিত ডেটা প্রাপ্ত করতে সহায়তা করে। একত্রে এই দুটি কৌশল ব্যবহার করলে, আপনি খুবই কার্যকরী এবং শক্তিশালী ডেটা কুয়েরি তৈরি করতে পারবেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion