C#-এ List<T>.Find(Predicate<T> match) মেথড লিস্টে প্রথম এলিমেন্টটি খুঁজে বের করে যা নির্দিষ্ট প্রিডিকেট (শর্ত) পূরণ করে। যদি কোনো এলিমেন্ট মিলে না থাকে, তবে ডিফল্ট মান (রেফারেন্স টাইপের জন্য null, ভ্যালু টাইপের জন্য 0/false) রিটার্ন করে।
উদাহরণ ১: ১০ দিয়ে বিভাজ্য প্রথম এলিমেন্ট
using System;
using System.Collections.Generic;
public class Demo {
private static bool demo(int i) {
return ((i % 10) == 0);
}
public static void Main(String[] args) {
List list = new List();
list.Add(200);
list.Add(215);
list.Add(310);
list.Add(500);
list.Add(600);
Console.WriteLine("লিস্ট এলিমেন্টসমূহ...");
foreach (int i in list) {
Console.WriteLine(i);
}
Console.WriteLine("প্রথম উদাহরণ = " + list.Find(demo));
}
}
আউটপুট
লিস্ট এলিমেন্টসমূহ... 200 215 310 500 600 প্রথম উদাহরণ = 200
উদাহরণ ২: জোড় সংখ্যার প্রথম উদাহরণ
using System;
using System.Collections.Generic;
public class Demo {
private static bool demo(int i) {
return ((i % 2) == 0);
}
public static void Main(String[] args) {
List list = new List();
list.Add(255);
list.Add(315);
list.Add(410);
list.Add(500);
list.Add(600);
list.Add(710);
list.Add(800);
list.Add(1000);
Console.WriteLine("লিস্ট এলিমেন্টসমূহ...");
foreach (int i in list) {
Console.WriteLine(i);
}
Console.WriteLine("প্রথম উদাহরণ = " + list.Find(demo));
}
}
আউটপুট
লিস্ট এলিমেন্টসমূহ... 255 315 410 500 600 710 800 1000 প্রথম উদাহরণ = 410
ব্যাখ্যা: Find লিনিয়ার সার্চ করে (O(n))। প্রথম উদাহরণে ২০০ প্রথমেই ১০ দিয়ে বিভাজ্য, তাই সেটি রিটার্ন হয়। দ্বিতীয় উদাহরণে ২৫৫ এবং ৩১৫ বিজোড়, ৪১০ প্রথম জোড় সংখ্যা। ল্যাম্বডা এক্সপ্রেশন দিয়ে ইনলাইন লেখা যায়: list.Find(x => x % 10 == 0)। সকল ম্যাচিং এলিমেন্ট পেতে FindAll ব্যবহার করতে হয়।