PDA

View Full Version : افزودن یک آرایه به انتهای آرایه دیگر



sara_aryanfar
دوشنبه 29 خرداد 1391, 00:36 صبح
با سلام من دو آرایه دارم که می خواهم اونها رو به هم اضافه کنم یعنی آرایه دوم رو در انتهای ارایه اول قرار بدم میدونم میشه با پیمایش یک ارایه اعضا رو یکی یکی به انتهای دیگری اضافه کرد ایا راه دیگری هست که بدون حلقه یک آرایه رو به انتهای اون یکی اضافه کرد؟

gwbasic
دوشنبه 29 خرداد 1391, 06:26 صبح
متد Array.Copy یا CopyTo آرایه می تونه به شما کمک کنه اما راه بهتر استفاده از LINQ هست. فضای نام System.Linq به کدتون اضافه کنید و از متد Concat استفاده کنید

int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int[] b = { 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
int[] ab = a.Concat(b).ToArray();


ab یک آرایه 20 سلولی از اتصال سلول های a و b‌ خواهد بود

سعی کنید بجای استفاده از Array از List استفاده کنید.

sara_aryanfar
دوشنبه 29 خرداد 1391, 09:35 صبح
ممنون ببینید من مقدار این آرایه ها رو داخل یک حلقه می گیرم باید هر بار که میره داخل حلقه مقدار قبلی ارایه مثلا a با مقدار جدیدش جمع بشه این چطوری هست و اینکه اصولا چطوری یک آرایه رو بعد از استفاده خالی کنیم؟

gwbasic
دوشنبه 29 خرداد 1391, 12:31 عصر
دقیقا سوالتون رو نفهمیدم اگه می خواین محاسبه انجام بدین حتما باید پیمایش صورت بگیره. اگه کاملتر توضیح بدید همراه با کد بهتر می شه توضیح داد

gwbasic
دوشنبه 29 خرداد 1391, 12:44 عصر
در مورد خالی کردن آرایه، همچین امکانی وجود نداره فقط شما می تونید به صورت زیر عمل کنید

int[] a= new int[10];
a = null;


این کار باعث می شه که آرایه 10 سلولی شما Garbage بشه یعنی رفرنسی نداره و در نتیجه در زمان مقتضی توسط Garbage Collector پاک سازی و حافظه اشغالی توسط اون آزاد می شه
اما اگه همانطور که در بالا گفتم از List استفاده کنید به صورت زیر می شه تمام سلول ها رو آزاد کرد


List<int> numbers = new List<int>();
...
numbers.Clear();