dokhmal
چهارشنبه 27 بهمن 1389, 16:22 عصر
سلام دوستان
یه 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 که من اسم کنترلم رو بدم و کنترل مورد نظرم رو دریافت کنم ؟
یه 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 که من اسم کنترلم رو بدم و کنترل مورد نظرم رو دریافت کنم ؟