PDA

View Full Version : یه اشکال عجیب در استفاده از list ها



samsami
یک شنبه 01 آبان 1390, 09:27 صبح
با سلام خدمت دوستان عزیز

من به یه اشکال عجیب برخوردم اگه کسی از دوستان می تونه منو راهنمایی کنه ممنون می شم

من دو تا لیست از یک کلاس معرفی کردم به شکل زیر :

List<Student> Stlist_1 = new List<Student>();
List<Student> Stlist_2 = new List<Student>();


خوب حالا Stlist_1 مثلا داخلش 10 تا دانشجو add می کنم و هنوز Stlist_2 خالی است ...
وقتی که Stlist_2 را برابر با Stlist_1 قرار می دهم اطلاعات Stlist_1 به Stlist_2 هم کپی می شود ..

تا اینجا همه چی درست ولی وقتی Stlist_1 را Clear می کنم Stlist_2 هم خالی می شود : چرا


Student s = new Student();
s.name = "ali";
s.family = "rezaee";
Stlist_1.Add(s);
Stlist_2 = Stlist_1;
Stlist_1.Clear();

Hajivandian
یک شنبه 01 آبان 1390, 10:50 صبح
سلام، این مشکل عجیب نیست برای اینکه در سی شارپ آرایه ها به صورت byref ارجاع داده می شوند
یعنی در حقیقت Stlist_2 شما همان Stlist_1 است برای حل این مشکل به جای

;Stlist_2 = Stlist_1

از

;(Stlist_2 = Stlist_1.GetRange(0, Stlist_1.Count

استفاده کنید

samsami
یک شنبه 01 آبان 1390, 11:05 صبح
دوست عزیز واقعا ممنون تست کردم جواب گرفتم ok

انشاالله جبران کنیم...