PDA

View Full Version : سوال: تغییر عناصر لیست در حلقه foreach



tazaree
شنبه 22 مهر 1391, 18:38 عصر
سلام

یک لیست داریم به نام blocks که خودش دارای فیلدهایی از جنس لیست می باشد. وقتی درون دو حلقه متداخل foreach می خواهیم مقدار برخی فیلدها را تغییر دهم مقدار آن فیلد در همه عناصر لیست تغییر می کند! یعنی مقدار آن فیلد در تمام عناصر لیست blocks دارای مقدار یکسانی می شود.:متعجب:
این هم کدش:

foreach (DIP.Region reg in blocks)
foreach (CDescriptor.DescItem desc in reg.FeatureVector)
desc.Value = FeatureExtraction(ref reg.RegImage, desc);

پس از اجرای کد فوق مقدار فیلد Value در کل لیست برابر با آخرین مقدار انتساب داده شده می باشد:گیج:

کسی می تونه کمکم کنه؟
ممنون

Farshid007
شنبه 22 مهر 1391, 19:37 عصر
خوب معلومه که همه ی ایتم ها عوض می شن:

شروع حلقه 1
:ایتم اول: شروع حلقه 2:(مقدار داده می شود) پایان حلقه 2
:ایتم دوم :شروع حلقه 2:(مقدار داده می شود)پایان حلقه 2
:ایتم سوم:شروع حلقه 2:(مقدار داده می شود)پایان حلقه 2
...
پایان حلقه 1

[امیدا وارم تونسته باشم مفهوم مورد نظرم رو برسونم]

tazaree
شنبه 22 مهر 1391, 21:04 عصر
خوب معلومه که همه ی ایتم ها عوض می شن:
....

[امیدا وارم تونسته باشم مفهوم مورد نظرم رو برسونم]

از پاسخگویی شما ممنونم.
ببین اینکه همه آیتم ها عوض می شوند قبول ولی چرا همه دارای یک مقدار ثابت می شوند در حالیکه تابع FeatureExtraction مقادیر متفاوتی را برمیگرداند. یعنی باید هر عنصر مقدار مربوط به خودش را داشته باشد در حالیکه در کل لیست فقط و فقط یک مقدار ثابت به Value نسبت داده می شود.