سلام من جدیدا یه مشکل با List پیدا کردم
وقتی که چند تا Item به یه لیست اضافه می کنم
از یه حلقه ی foreach بین item های لیست خطا می گیره
البته بعضی وقتا
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
Printable View
سلام من جدیدا یه مشکل با List پیدا کردم
وقتی که چند تا Item به یه لیست اضافه می کنم
از یه حلقه ی foreach بین item های لیست خطا می گیره
البته بعضی وقتا
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلام
از قدیم List و Collection های عادی دات نت اجازه تغییر در زمان foreach و شمارش Enumerator بین عناصر را نمیدهد.
من برای خودم List هایی که قابلیت مذکور را داشته باشند، ساخته ام و میتوان این کار را انجام داد ولی اصولاً انجام این کار خطرناک است و نیاز به دقت دارد، چون با هر درج در وسط و نیز حذف عناصر در بین لیست احتمال دارد (و تحت شرایط خاص پیش می آید) که عنصری دوبار در حلقه رد شود و یا عنصری اصلاً پردازش نشود.
(که این مطلب برای برنامه هایی میتواند فاجعه بار باشد.)
پیشنهاد میکنم از حلقه for عادی استفاده کنید و روی مسئله فکر کنید و ببینید که اگز از ابتدا به انتهای آرایه را اسکن کنید منطقی تر است یا از انتها به ابتدا.
(مثلاً در برخی موارد که نیاز به حذف عناصر در بین حلقه for است، حالت اسکن از انتها به ابتدا میتواند موثر و منطقی تر باشد.)