PDA

View Full Version : سوال: استفاده از یک آرایه به وسیله نام آن؟



sajadjamalian
سه شنبه 30 آذر 1389, 12:09 عصر
سلام دوستان:
من توی یه جایی از برنامم از یه آرایه رشته ای مثل زیر استفاده کرم:

string[] s1 = new string[100];
string[] s2 = new string[100];
string[] s3 = new string[100];
string[] s4 = new string[100];
حالا توی جای دیگه ای از برنامه مجبور شدم نام این آرایه ها رو به صورت زیر بدست بیارم:

string st = "s" + 1.tostring();
حالا میخوام بدونم چطور میتونم با st مثل یه آرایه رفتار کنم؟

devhandler
سه شنبه 30 آذر 1389, 12:25 عصر
اگر منظورت رو درست متوجه شده باشم، برای گرفتن یک Member از روی نام، باید از Reflection استفاده کنی.

Reza_Yarahmadi
سه شنبه 30 آذر 1389, 12:27 عصر
يك راه ميتونه بصورت زير باشه:
همه آرايه ها رو در غالب يك ديكشنري تعريف كنيد و بصورت زير اونها رو مقدار دهي و اطلاعاتش رو بخونيد

Dictionary<String, String[]> array = new Dictionary<string, string[]>();
array.Add("S1", new string[100]);
array.Add("S2", new string[100]);
array.Add("S3", new string[100]);
array.Add("S4", new string[100]);
array.Add("S5", new string[100]);

string st = "S" + 1.ToString();
array[st][0] = "Reza";

MessageBox.Show(array[st][0]);

sajadjamalian
سه شنبه 30 آذر 1389, 12:32 عصر
يك راه ميتونه بصورت زير باشه:
همه آرايه ها رو در غالب يك ديكشنري تعريف كنيد و بصورت زير اونها رو مقدار دهي و اطلاعاتش رو بخونيد

Dictionary<String, String[]> array = new Dictionary<string, string[]>();
array.Add("S1", new string[100]);
array.Add("S2", new string[100]);
array.Add("S3", new string[100]);
array.Add("S4", new string[100]);
array.Add("S5", new string[100]);

string st = "S" + 1.ToString();
array[st][0] = "Reza";

MessageBox.Show(array[st][0]);

سلام دوست عزیز:
ممنون که جواب دادی، با این روش مشکلی پیش نمیاد، یعنی این دقیقا مثل این میمونه که آرایه ها رو جدا جدا تعریف کرده باشیم؟؟

Reza_Yarahmadi
سه شنبه 30 آذر 1389, 12:41 عصر
روشهاي زيادي براي تعريف آرايه درون آرايه وجود داره كه همگي بدون مشكل كار ميكنند ، ولي براي اينكه بشه با نام به هر آرايه دسترسي پيدا كرد اين روش مطمئن تره.

یعنی این دقیقا مثل این میمونه که آرایه ها رو جدا جدا تعریف کرده باشیم؟
بله.