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

نام تاپیک: پیدا کردن آیتمی خاص از یک stack

  1. #1

    Question پیدا کردن آیتمی خاص از یک stack

    سلام دوستان
    یه stack دارم به صورت زیر:
    var ctrlstack = new Stack();
    ctrlstack = MRKGetControls(frm);

    همونطور که متوجه شدید ، از این stack برای نگهداری کنترل های فرمم استفاده می کنم.
    در ادامه برنامم ، لازم دارم تا کنترل های مورد نظرم از داخل این stack رو پیدا کنم. برای این کار از Foreach استفاده کردم.
    foreach (Control ctr in ctrlstack)
    {
    if ((ctr.GetType().Name.Substring(0, 3) == "MRK") && (ctr.Name.ToLower() == pp.ElementAt(i).ObjectName.ToLower()))
    ....
    {
    مشکلی که دارم اینه که ، فرمی دارم که 198 تا کنترل توش هست و این کثرت کنترلهای این فرمم باعث میشه تا اون حلقه foreach حدود 20 ثانیه طول بکشه.
    دوستان شما پیشنهادی دارید که من بتونم سریع تر کنترلهای مورد نظرم رو از داخل stack پیدا کنم .
    یه چیزی مثل find یا search داره خود stack که من اسم کنترلم رو بدم و کنترل مورد نظرم رو دریافت کنم ؟

  2. #2

    نقل قول: پیدا کردن آیتمی خاص از یک stack

    شما چرا به اينصورت كار ميكنيد؟ چه نيازي به Stack داريد؟
    براي جستجوي كنترلهاي يك فرم ميتونيد از كد زير و مواقعي كه نياز به Stack داريد از ctrlstack استفاده كنيد.
    Control[] ctrls = this.Controls.Find(pp.ElementAt(i).ObjectName, true);
    if (ctrls != null)
    {
    Control ctrl = ctrls[0];
    ....
    }

  3. #3

    نقل قول: پیدا کردن آیتمی خاص از یک stack

    ممنون از راهنماییتون

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

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