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

نام تاپیک: اضافه کردن عنصر به آرایه ای با طول نا مشخص

  1. #1
    کاربر دائمی
    تاریخ عضویت
    مهر 1387
    محل زندگی
    قزوین
    پست
    158

    اضافه کردن عنصر به آرایه ای با طول نا مشخص

    سلام
    جایی از کدم دارم یه کوئری می زنم که نتیجه اش رو می خوام توی یه آرایه ی int بریزم اما از قبل نمی دونم که تعداد نتایج چند تاست تا آرایه ام رو از همون سایز تعریف کنم (این که ساز آرایه برابر عناصر باشه برام مهمه). در ضمن نتیجه ی کوئری توی یه datareader به اسمdr ریخته می شه و ترجیح می دم توی dataset نریزم (البته اگه راهی نباشه احتمالا باید همین کار رو کرد). این آخری مسلما خوبیش اینه که تعداد سطر های نتیجه رو می شه راحت فهمید و دیگه این سوال من بی معنی می شه. می خوام بدونم کسی راهی بلده که بشه جوری به این آرایه با طول نامشخص عنصر اضافه کرد که بعدا بشه با شماره اندیس بهشون دسترسی داشت؟
    قبلا concat رو امتحان کردم، آرایه رو می سازه اما بعدا نمی شه با شماره اندیس به عنصر ها دسترسی داشت. اینم کدش:

    int[] arr=new int[] {};
    .
    .
    .
    while(dr.read()){
    arr.Concat({dr.GetValue(0)});
    }

  2. #2
    کاربر دائمی
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران سرای من است
    پست
    2,655

    Lightbulb نقل قول: اضافه کردن عنصر به آرایه ای با طول نا مشخص

    سلام:
    دوست عزیز اگه منظورتون اینه که میخواهید بصورت RunTime یه آرایه با در نظر گرفتن اینکه خودتون در اجرا مقدار اندیکس رو تعین کنید بصورت زیر عمل کن ولی اگه اینطور نیست سوالت رو واضح مطرح کن تا بتونیم کمکتون کنیم.
     
    int *a;
    int len;
    len = 20;
    a = new int [len];
    //designe your program
    delete [] a;

  3. #3
    کاربر دائمی آواتار adinochestva
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    jre
    پست
    460

    نقل قول: اضافه کردن عنصر به آرایه ای با طول نا مشخص

    می تونی اینجور بنویسی :

    List<int> list = new List<int>;
    .
    .
    .
    while(dr.read()){
    list.Add(dr.GetValue(0));
    }

    int[] arr = list.ToArray();



  4. #4
    کاربر دائمی
    تاریخ عضویت
    مهر 1387
    محل زندگی
    قزوین
    پست
    158

    نقل قول: اضافه کردن عنصر به آرایه ای با طول نا مشخص

    نقل قول نوشته شده توسط tdkhakpur مشاهده تاپیک
    سلام:
    دوست عزیز اگه منظورتون اینه که میخواهید بصورت RunTime یه آرایه با در نظر گرفتن اینکه خودتون در اجرا مقدار اندیکس رو تعین کنید بصورت زیر عمل کن ولی اگه اینطور نیست سوالت رو واضح مطرح کن تا بتونیم کمکتون کنیم.
     
    int *a;
    int len;
    len = 20;
    a = new int [len];
    //designe your program
    delete [] a;
    ممنون ولی توی کد شما که مقدار Len ثابت و برابر 20 فرض شده. چیزی که من خواستم اصلا مشخص نیست چه عددی باشه

    نقل قول نوشته شده توسط adinochestva مشاهده تاپیک
    می تونی اینجور بنویسی :

    List<int> list = new List<int>;
    .
    .
    .
    while(dr.read()){
    list.Add(dr.GetValue(0));
    }

    int[] arr = list.ToArray();


    خیلی خیلی ممنون. فکر کنم راه حل، کد شما باشه. فقط می خواستم بپرسم آیا این متد ToArray عناصر لیست رو درست به همون ترتیبی که به لیست اضافه کرده بودیم به صورت آرایه در میاره؟ آخه ترتیب خیلی برام مهمه. مهمه که عنصری که اول توی لیست گذاشته می شه اندیسش صفر باشه و به همین ترتیب.

  5. #5
    کاربر تازه وارد آواتار khaste_007
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    تهران
    پست
    98

    نقل قول: اضافه کردن عنصر به آرایه ای با طول نا مشخص

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

  6. #6
    کاربر دائمی آواتار babila
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    آذربایجان
    پست
    293

    نقل قول: اضافه کردن عنصر به آرایه ای با طول نا مشخص

    می تونی از متد Resize مربوط به کلاس Array استفاده کنی .
    Array.Resize(ref arrayName,NewSize

  7. #7
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    1,025

    نقل قول: اضافه کردن عنصر به آرایه ای با طول نا مشخص

    یه راه دیگه هم اینه که اول با دستور Count تعداد رکوردها رو از بانک بگیری و براساس تعداد آرایه رو بسازی و بعد کوئری رو اجرا کنی
    من از این روش استفاده میکنم

برچسب های این تاپیک

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

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