List<T>.Contains() মেথড ব্যবহার করে লিস্টে নির্দিষ্ট আইটেম আছে কিনা O(n) সময়ে চেক করা যায়। রেফারেন্স টাইপের জন্য ডিফল্ট সমতা তুলনা হয়।
সিনট্যাক্স
List<string> list = new List<string> { "Lawrence", "Adams", "Pitt", "Tom" };
bool exists = list.Contains("Adams"); // true
সম্পূর্ণ উদাহরণ
using System;
using System.Collections.Generic;
class ListContainsDemo
{
public static void Main()
{
List<string> list = new List<string> { "Lawrence", "Adams", "Pitt", "Tom" };
Console.WriteLine("লিস্ট: " + string.Join(", ", list));
string search = "Adams";
if (list.Contains(search))
Console.WriteLine($"'{search}' লিস্টে আছে!");
else
Console.WriteLine($"'{search}' লিস্টে নেই!");
// কেস-ইনসেনসিটিভ চেক (LINQ)
bool existsIgnoreCase = list.Any(s => s.Equals(search, StringComparison.OrdinalIgnoreCase));
Console.WriteLine($"কেস-ইনসেনসিটিভ: {existsIgnoreCase}");
}
}
আউটপুট
লিস্ট: Lawrence, Adams, Pitt, Tom
'Adams' লিস্টে আছে!
কেস-ইনসেনসিটিভ: True
পারফরম্যান্স ও বিকল্প
| পদ্ধতি | সময় জটিলতা | ব্যবহার কেস |
|---|---|---|
List.Contains | O(n) | ছোট লিস্ট, ইনফ্রিকোয়েন্ট লুকআপ |
HashSet.Contains | O(1) | বড় লিস্ট, ফ্রিকোয়েন্ট লুকআপ |
BinarySearch | O(log n) | সর্টেড লিস্ট |
LINQ Any | O(n) | কাস্টম প্রেডিকেট |
HashSet-এ কনভার্ট করে দ্রুত লুকআপ
var set = new HashSet<string>(list);
bool exists = set.Contains("Adams"); // O(1)
নোট
Containsডিফল্টEqualityComparer<T>.Defaultব্যবহার করে।- কাস্টম ক্লাসের জন্য
IEquatable<T>ইমপ্লিমেন্ট করুন।