C#-এ List<T>.ForEach(Action<T> action) মেথড লিস্টের প্রতিটি এলিমেন্টের জন্য নির্দিষ্ট অ্যাকশন (ডেলিগেট) এক্সিকিউট করে। এটি foreach লুপের বিকল্প এবং ফাংশনাল স্টাইলে কোড লেখার সুবিধা দেয়।
উদাহরণ ১: প্রতিটি এলিমেন্ট ১০ গুন করা
using System;
using System.Collections.Generic;
public class Demo {
public static void demo(int s) {
s = s * 10;
Console.WriteLine(s);
}
public static void Main(String[] args) {
List list = new List();
list.Add(25);
list.Add(50);
list.Add(75);
list.Add(100);
list.Add(200);
list.Add(250);
list.Add(275);
list.Add(300);
Console.WriteLine("লিস্ট...");
foreach (int i in list) {
Console.WriteLine(i);
}
Console.WriteLine("\nআপডেটেড লিস্ট...");
list.ForEach(demo);
}
}
আউটপুট
লিস্ট... 25 50 75 100 200 250 275 300 আপডেটেড লিস্ট... 250 500 750 1000 2000 2500 2750 3000
উদাহরণ ২: প্রতিটি এলিমেন্ট থেকে ৫০ বিয়োগ করা
using System;
using System.Collections.Generic;
public class Demo {
public static void demo(int s) {
s = s - 50;
Console.WriteLine(s);
}
public static void Main(String[] args) {
List list = new List();
list.Add(25);
list.Add(50);
list.Add(75);
list.Add(100);
list.Add(200);
list.Add(250);
list.Add(275);
list.Add(300);
Console.WriteLine("লিস্ট...");
foreach (int i in list) {
Console.WriteLine(i);
}
Console.WriteLine("\nআপডেটেড লিস্ট...");
list.ForEach(demo);
}
}
আউটপুট
লিস্ট... 25 50 75 100 200 250 275 300 আপডেটেড লিস্ট... -25 0 25 50 150 200 225 250
ব্যাখ্যা: ForEach মেথড লিস্ট মডিফাই করে না (উপরের উদাহরণে `s` লোকাল কপি, তাই মূল লিস্ট অপরিবর্তিত থাকে)। লিস্ট মডিফাই করতে হলে ইনডেক্সার বা for লুপ ব্যবহার করতে হয়। ল্যাম্বডা এক্সপ্রেশন দিয়ে ইনলাইন লেখা যায়: list.ForEach(x => Console.WriteLine(x * 10))।