Distinct, Union, এবং Intersect

Microsoft Technologies - লিংক (LinQ) LINQ এ সেট অপারেশন (Set Operations in LINQ) |
232
232

LINQ এ Distinct, Union, এবং Intersect মেথডগুলি আপনাকে বিভিন্ন সংগ্রহের মধ্যে ডুপ্লিকেট অপসারণ এবং সামঞ্জস্যপূর্ণ তথ্য খোঁজা করতে সাহায্য করে। এই তিনটি মেথড আপনার ডেটা ম্যানিপুলেশন বা সংগ্রহের বিভিন্ন প্রয়োজনে কার্যকরী হতে পারে।


Distinct

Distinct মেথডটি একটি সংগ্রহের মধ্যে ডুপ্লিকেট উপাদানগুলি অপসারণ করতে ব্যবহৃত হয়। এটি একটি নতুন সংগ্রহ তৈরি করে, যেখানে শুধুমাত্র ইউনিক (অদ্বিতীয়) উপাদান থাকবে।

উদাহরণ:

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

// ডুপ্লিকেট অপসারণ
var distinctNumbers = numbers.Distinct();

foreach (var num in distinctNumbers)
{
    Console.WriteLine(num);  // Output: 1, 2, 3, 4, 5, 6
}

এখানে Distinct() মেথডটি লিস্টের মধ্যে থাকা ডুপ্লিকেট সংখ্যা (যেমন 3 এবং 5) অপসারণ করে শুধুমাত্র ইউনিক সংখ্যা ফিরিয়ে দিয়েছে।


Union

Union মেথডটি দুটি সংগ্রহের মধ্যে অবিচ্ছিন্ন (distinct) উপাদান একত্রিত করতে ব্যবহৃত হয়। এটি দুটি সংগ্রহের একত্রিত (concatenate) উপাদানগুলো থেকে ডুপ্লিকেট অপসারণ করে একটি নতুন সংগ্রহ তৈরি করে।

উদাহরণ:

List<int> list1 = new List<int> { 1, 2, 3, 4 };
List<int> list2 = new List<int> { 3, 4, 5, 6 };

// দুটি লিস্টের ইউনিক উপাদান একত্রিত করা
var unionList = list1.Union(list2);

foreach (var num in unionList)
{
    Console.WriteLine(num);  // Output: 1, 2, 3, 4, 5, 6
}

এখানে, Union মেথড দুটি লিস্টের মধ্যে সাধারণ উপাদানগুলো (৩ এবং ৪) বাদ দিয়ে, সমস্ত ইউনিক উপাদানকে একত্রিত করে একটি নতুন সংগ্রহ তৈরি করেছে।


Intersect

Intersect মেথডটি দুটি সংগ্রহের মধ্যে যে উপাদানগুলি সাধারণ, অর্থাৎ উভয় সংগ্রহেই বিদ্যমান, তা বের করে। এটি দুটি সংগ্রহের সামঞ্জস্যপূর্ণ উপাদান রিটার্ন করে এবং ডুপ্লিকেটগুলো বাদ দেয়।

উদাহরণ:

List<int> list1 = new List<int> { 1, 2, 3, 4 };
List<int> list2 = new List<int> { 3, 4, 5, 6 };

// দুটি লিস্টের সাধারণ (common) উপাদান খোঁজা
var intersectList = list1.Intersect(list2);

foreach (var num in intersectList)
{
    Console.WriteLine(num);  // Output: 3, 4
}

এখানে Intersect মেথডটি দুটি লিস্টের মধ্যে যে উপাদানগুলো উভয়েই রয়েছে (৩ এবং ৪), তা একত্রিত করে রিটার্ন করেছে।


Distinct, Union, এবং Intersect এর মধ্যে পার্থক্য

  • Distinct: একটি একক সংগ্রহের মধ্যে ডুপ্লিকেট উপাদানগুলো অপসারণ করে ইউনিক উপাদান রিটার্ন করে।
  • Union: দুটি সংগ্রহের একত্রিত ইউনিক উপাদানগুলোর সমন্বয় করে, অর্থাৎ দুটি সংগ্রহের সব ইউনিক উপাদান একত্রিত হয়।
  • Intersect: দুটি সংগ্রহের মধ্যে যে উপাদানগুলো সাধারণ, অর্থাৎ উভয়েই বিদ্যমান, সেগুলি বের করে।

আরও উদাহরণ: বিভিন্ন ডেটাটাইপের সঙ্গে ব্যবহার

Distinct on Objects

ধরা যাক, আমাদের একটি Employee ক্লাস রয়েছে এবং আমরা একই নামের কর্মীদের অপসারণ করতে চাই।

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

List<Employee> employees = new List<Employee>
{
    new Employee { Name = "Alice", Age = 25 },
    new Employee { Name = "Bob", Age = 30 },
    new Employee { Name = "Alice", Age = 28 },
    new Employee { Name = "Charlie", Age = 35 }
};

// Distinct - Name অনুযায়ী ইউনিক কর্মী নির্বাচন
var distinctEmployees = employees.Distinct().ToList();

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

এখানে Distinct() দ্বারা একই নামের কর্মী গুলি অপসারণ করা হবে।

Union with Objects

List<Employee> list1 = new List<Employee>
{
    new Employee { Name = "Alice", Age = 25 },
    new Employee { Name = "Bob", Age = 30 }
};

List<Employee> list2 = new List<Employee>
{
    new Employee { Name = "Bob", Age = 30 },
    new Employee { Name = "Charlie", Age = 35 }
};

// দুটি লিস্টের ইউনিক কর্মী একত্রিত করা
var unionEmployees = list1.Union(list2, new EmployeeComparer()).ToList();

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

এখানে, EmployeeComparer একটি custom comparer যা Name এবং Age প্রপার্টির উপর ভিত্তি করে কর্মীদের তুলনা করে।

Intersect with Objects

List<Employee> list1 = new List<Employee>
{
    new Employee { Name = "Alice", Age = 25 },
    new Employee { Name = "Bob", Age = 30 }
};

List<Employee> list2 = new List<Employee>
{
    new Employee { Name = "Bob", Age = 30 },
    new Employee { Name = "Charlie", Age = 35 }
};

// দুটি লিস্টের সাধারণ (common) কর্মী খোঁজা
var intersectEmployees = list1.Intersect(list2, new EmployeeComparer()).ToList();

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

এখানে Intersect মেথডটি Bob নামের কর্মীকে উভয় লিস্টের মধ্যে সাধারণ উপাদান হিসেবে নির্বাচন করবে।


সারাংশ

  • Distinct: একটি সংগ্রহের মধ্যে ডুপ্লিকেট উপাদান অপসারণ করে ইউনিক উপাদানগুলো রিটার্ন করে।
  • Union: দুটি সংগ্রহের ইউনিক উপাদানগুলো একত্রিত করে, ডুপ্লিকেটগুলো বাদ দেয়।
  • Intersect: দুটি সংগ্রহের মধ্যে সাধারণ উপাদানগুলো বের করে, অর্থাৎ যেগুলি উভয়েই রয়েছে।

এই তিনটি মেথডটি ডেটা ম্যানিপুলেশন এবং ফিল্টারিং এর ক্ষেত্রে খুবই কার্যকরী।

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

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

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

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