C#-এ List<T> এর মধ্যে পার্থক্য বের করার সবচেয়ে সহজ এবং কার্যকর উপায় হলো LINQ-এর Except() মেথড ব্যবহার করা। এই মেথড প্রথম লিস্টে থাকা কিন্তু দ্বিতীয় লিস্টে নাও থাকা উপাদানগুলো রিটার্ন করে।
প্রাথমিক সেটআপ
// প্রথম লিস্ট
List<string> list1 = new List<string>();
list1.Add("A");
list1.Add("B");
list1.Add("C");
list1.Add("D");
// দ্বিতীয় লিস্ট
List<string> list2 = new List<string>();
list2.Add("C");
list2.Add("D");
পার্থক্য বের করার কোড
using System.Linq;
IEnumerable<string> list3 = list1.Except(list2);
সম্পূর্ণ উদাহরণ
using System;
using System.Collections.Generic;
using System.Linq;
public class Demo
{
public static void Main()
{
List<string> list1 = new List<string>();
list1.Add("A");
list1.Add("B");
list1.Add("C");
list1.Add("D");
Console.WriteLine("প্রথম লিস্ট...");
foreach (string value in list1)
{
Console.WriteLine(value);
}
List<string> list2 = new List<string>();
list2.Add("C");
list2.Add("D");
Console.WriteLine("দ্বিতীয় লিস্ট...");
foreach (string value in list2)
{
Console.WriteLine(value);
}
Console.WriteLine("দুই লিস্টের পার্থক্য...");
IEnumerable<string> list3 = list1.Except(list2);
foreach (string value in list3)
{
Console.WriteLine(value);
}
}
}
আউটপুট
প্রথম লিস্ট...
A
B
C
D
দ্বিতীয় লিস্ট...
C
D
দুই লিস্টের পার্থক্য...
A
B
মূল পয়েন্টগুলো
- Except() মেথড: এটি সেট থিওরির "পার্থক্য" অপারেশন ইমপ্লিমেন্ট করে।
- অর্ডার সংরক্ষণ: ফলাফলে উপাদানগুলো প্রথম লিস্টের অর্ডার অনুযায়ী থাকে।
- ডুপ্লিকেট হ্যান্ডলিং: যদি প্রথম লিস্টে ডুপ্লিকেট থাকে, তবে
Except()সেগুলো একবারই দেখাবে (সেট আচরণ)। - কাস্টম টাইপের জন্য: জটিল অবজেক্টের লিস্টে
IEqualityComparer<T>ইমপ্লিমেন্ট করতে হয়।
বিকল্প: ম্যানুয়াল পদ্ধতি
LINQ ছাড়া আপনি লুপ এবং Contains() ব্যবহার করেও এটি করতে পারেন, কিন্তু পারফরম্যান্স এবং পঠনযোগ্যতার দৃষ্টিকোণ থেকে Except() श्रেষ্ঠ।