যদি আমি ব্যবহার করি:
var strings = new List<string> { "sample" };
foreach (string s in strings)
{
Console.WriteLine(s);
strings.Add(s + "!");
}
Addমধ্যে foreachএকটি InvalidOperationException ছোঁড়ার (সংগ্রহ পরিবর্তিত হয়; শুমার অপারেশন চালানো নাও করতে পারে), যা আমি যৌক্তিক বিবেচনা, যেহেতু আমরা আমাদের পায়ের নীচ থেকে কম্বল টেনে করছে।
তবে, যদি আমি ব্যবহার করি:
var strings = new List<string> { "sample" };
strings.ForEach(s =>
{
Console.WriteLine(s);
strings.Add(s + "!");
});
এটি অবিলম্বে লুপিং দ্বারা পায়ের মধ্যে নিজেকে অঙ্কুরিত না করা পর্যন্ত এটি আউটআফমিউরিএক্সেপশনটি ছুঁড়ে না ফেলে।
এটি আমার কাছে অবাক হওয়ার মতো বিষয়, কারণ আমি সবসময়ই ভাবতাম যে তালিকা.ফোরএইচ কেবল হয় foreachবা তার জন্য একটি মোড়ক for।
কীভাবে এবং কেন এই আচরণের জন্য কারও কাছে ব্যাখ্যা আছে?
( জেনেরিক তালিকার জন্য ফোরইচ লুপ দ্বারা অন্তর্হিত পুনরাবৃত্তি )