PDA

View Full Version : اشکال در ریختن ارایه یک بعدی در یک ارایه دو بعدی در asp.net



benyamin mirzai
یک شنبه 12 آبان 1387, 12:58 عصر
من در ریختن ارایه یک بعدی در دو بعدی اشکال دارم به این صورت نوشتم ولی خطا می دهد لطفا راهنمایی کنید
ارایه ها :
string[][] A;
string[] xarray;
int i=0;

[code][
for (j = 0; j < 5; j++)
{
A[i][j]=xarray[j].ToString();
/CODE].

cherchil_hra
یک شنبه 12 آبان 1387, 17:09 عصر
کد شما:



string[][] A;
string[] xarray;
int i = 0;

for (j = 0; j < 5; j++)
{
A[i][j] = xarray[j].ToString();
}


اول اینکه باید متغیر j رو به سیستم معرفی کنید: int j

دوم اینکه شما در برنامتون مشخص نکردید که طول آرایتون چقدر هست و متغیر آرایه تا چه خانه ای از حافظه را دسترسی داره. بنابراین حافظه ای بهش تعلق نمی گیره که بخواد ازش بخونه یا بنویسه. اینجور تعریف کردن آرایه برای زمانی مناسب هست که بخواهید آدرس آرایه دیگه ای رو به آرایتون نسبت بدید و در واقع دو آرایه به یک آدرس اشاره کنند.

سوم اینکه آرایه دو بعدی که تعریف کردید، آرایه دندانه ای هستش که تعداد سطرهاش رو باید در تعریف مشخص کنید و طول ستون هاش رو بعد از تعریف معین کنید، که فکر نکنم این آرایه اینجا به کار شما بیاد.

چهارم اینکه شما نمی تونی آرایه ای که مقدار دهی نکردی (null) به متغیر دیگه ای نسبت بدی.

بنابراین کد شما باید اینجوری بشه:



string[][] A=new string [1][];
string[] xarray ={ "1", "2", "3", "4", "5" };
A[0] = new string[5];

int i = 0;

for (int j = 0; j < 5; j++)
{
A[i][j] = xarray[j].ToString();
}

SMRAH1
دوشنبه 13 آبان 1387, 07:19 صبح
البته در #C ارایه های دوبعدی را به شکل [][]A معرفی نمی کنند بلکه به شکل [,]A است.

iman_ad
پنج شنبه 30 آبان 1387, 18:24 عصر
هر دوش درسته [,]ََََA برای آرایه 2 بعدی مربعی [][]A برای jagged array