যদি আমি ব্যবহার করি:
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
।
কীভাবে এবং কেন এই আচরণের জন্য কারও কাছে ব্যাখ্যা আছে?
( জেনেরিক তালিকার জন্য ফোরইচ লুপ দ্বারা অন্তর্হিত পুনরাবৃত্তি )