PDA

نسخه کامل مشاهده نسخه کامل : مشکل با List



L u K e !
10-09-2009, 12:48
سلام من جدیدا یه مشکل با List پیدا کردم
وقتی که چند تا Item به یه لیست اضافه می کنم
از یه حلقه ی foreach بین item های لیست خطا می گیره
البته بعضی وقتا

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

_H2_
10-09-2009, 13:32
سلام
از قدیم List و Collection های عادی دات نت اجازه تغییر در زمان foreach و شمارش Enumerator بین عناصر را نمیدهد.

من برای خودم List هایی که قابلیت مذکور را داشته باشند، ساخته ام و میتوان این کار را انجام داد ولی اصولاً انجام این کار خطرناک است و نیاز به دقت دارد، چون با هر درج در وسط و نیز حذف عناصر در بین لیست احتمال دارد (و تحت شرایط خاص پیش می آید) که عنصری دوبار در حلقه رد شود و یا عنصری اصلاً پردازش نشود.
(که این مطلب برای برنامه هایی میتواند فاجعه بار باشد.)

پیشنهاد میکنم از حلقه for عادی استفاده کنید و روی مسئله فکر کنید و ببینید که اگز از ابتدا به انتهای آرایه را اسکن کنید منطقی تر است یا از انتها به ابتدا.
(مثلاً در برخی موارد که نیاز به حذف عناصر در بین حلقه for است، حالت اسکن از انتها به ابتدا میتواند موثر و منطقی تر باشد.)