نمایش نتایج 1 تا 2 از 2

نام تاپیک: مشکل در تغییر سایز آرایه دو بعدی دینامیک(پویا)

  1. #1
    کاربر تازه وارد آواتار ebrahimashori
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    سمنان-شاهرود
    پست
    64

    Smile مشکل در تغییر سایز آرایه دو بعدی دینامیک(پویا)

    سلام
    زمانی که می خواهم آرایه 2 بعدی دینامیک را با حفظ مقادیر قبلی تغییر سایز بدهم ، کامپایلر خطا می دهد. لطفا با یک مثال راهنمایی کنید.
    البته من کد دقیق تغییر سایز آرایه با شرایط فوق را بلد نیستم و در هیچ کتابی پیدا نکردم و فقط می توانم آرایه 1 بعدی را تغییر سایز بدهم.
    این کار امکان پذیر هست و اگر هست برای آرایه با بعد بیشتر از 2 هم در صورت امکان با مثال توضیح دهید.
    ممنونم.
    در زیر یک مثال برای تغییر آرایه 1 بعدی با حفظ مقادیر قبلی آورده ام.

    byte[] test;
    test = new byte[2];
    test[0] = 5;
    test[1] = 4;
    Array.Resize(ref test, 6);
    test[2] = 3;
    test[3] = 2;
    test[4] = 1;
    test[5] = 0;
    foreach (byte s in test)
    {
    ListBox1.Items.Add(s);
    }
    آخرین ویرایش به وسیله ebrahimashori : یک شنبه 29 آبان 1390 در 20:10 عصر

  2. #2
    مدیر بخش آواتار mmd2009
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    پست
    2,393

    نقل قول: مشکل در تغییر سایز آرایه دو بعدی دینامیک(پویا)

    با سلام

    تا جایی که من میدونم ارایه 2 بُعدی یا بیشتر رو به صورت dynamic نمیتونید اندازشو تغییر بدید. یک راه ساده که میشه گفت اینه که ارایه رو در یک ارایه جدید Copy کنید

    موفق باشید

    ویرایش :

    میتونی به این شکل Resize کنی ارایه رو :


    private void button1_Click(object sender, EventArgs e)
    {
    var array2D = new int[2, 2];

    array2D[0, 0] = 1;
    array2D[0, 1] = 2;

    array2D[1, 0] = 1;
    array2D[1, 1] = 2;

    listBox1.Items.Add("Old Array");

    foreach (var i in array2D)
    {
    listBox1.Items.Add(i);
    }

    listBox1.Items.Add("New Array");

    ResizeMultiDimensionalArray(ref array2D, 3, 2);

    array2D[2, 0] = 1;
    array2D[2, 1] = 2;

    foreach (var i in array2D)
    {
    listBox1.Items.Add(i);
    }
    }

    private void ResizeMultiDimensionalArray(ref int[,] myArray, int column, int row)
    {
    var newArray = new int[column, row];

    Array.Copy(myArray, newArray, myArray.Length);

    myArray = newArray;
    }
    آخرین ویرایش به وسیله mmd2009 : یک شنبه 29 آبان 1390 در 10:57 صبح

    کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»


قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •