برفرض ListBox ای داریم که شامل چندین آیتم مختلف میباشد و قصد داریم تا ایندکس آیتمی که مقدار آن برابر FuLLKade است را به دست آوریم. (یعنی به دست آوردن ایندکس، از روی مقدار)
روش اول: متد FindString
به صورت زیر عمل میکنیم:
1 2 3 4 5 6 |
string value = "FuLLKade"; int index = listBox1.FindString(value); if (index != -1) { MessageBox.Show("Index of " + value + " = " + index); } |
توجه داشته باشید که تابع FindString، همواره ایندکس اولین آیتمی که برابر FuLLKade باشد را برمیگرداند! و اگر هیچ آیتمی وجود نداشته باشد، در نتیجه مقدار ایندکس برابر با -1 خواهد شد.
اگر بخواهیم همیشه ایندکس خانهی بعدی را برگرداند:
اگر ما دو یا چندین آیتم با مقدار FuLLKade داشته باشیم و بخواهیم با هربار صدا زدن متد FinString، ایندکس آیتم بعدی را برگرداند و اگر به انتها رسید دوباره از ابتدا شروع شود، میتوانیم از طریق ورودی دوم متد FindString، ایندکس شروع را وارد کنیم! این ایندکس شروع، برابر آخرین ایندکس دریافتی بعلاوهی یک خواهد بود؛ یعنی: index + 1
حالا مورد دیگری که باید به آن توجه داشته باشیم، این است که هربار بایستی طول آرایه را بررسی کنیم و اگر به انتها رسیده بود، آخرین ایندکس را از 0 شروع کنیم! یا اگر مورد جدیدی پیدا نشد و ایندکس برابر با مقدار -1 شد، دوباره از ابتدا یعنی ایندکس برابر 0 شروع کنیم که میتوانیم یا ورودی دوم را وارد نکنیم و یا آن را برابر با 0 وارد کنیم.
رومش دوم: حلقه
طبیعتا متد بالا، با استفاده از یک حلقه اینکار را برایمان انجام میدهد! بنابراین اگر بخواهیم خودمان چنین چیزی بنویسیم، به صورت زیر عمل میکنیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
string value = "C"; int index = -1; for (int i = 0; i < listBox1.Items.Count; i++) { if (listBox1.Items[i].Equals(value)) { index = i; break; } } if (index != -1) { MessageBox.Show("Index of " + value + " = " + index); } |
یک حلقهی ساده نوشتهایم که به ازای هر آیتم اجرا شده و در صورتی که یک آیتم برابر مقدار وارد شده باشد، ایندکس را تنظیم کرده و سپس حلقه را بشکند. مقدار پیشفرض ایندکس نیز برابر با -1 میباشد تا اگر آیتمی پیدا نشد، از روی این مقدار بررسی کنیم که آیتمی پیدا نشده است! چرا که آیتمها از 0 شروع میشوند و میتوانیم از طریق مقادیر منفی، چنین چیزی را بررسی کنیم.
حالا چرا باید از این روش استفاده کرد؟!
درواقع اهمیت استفاده از این روش، زمانی مشخص میشود که ما بخواهیم مواردی از جمله بزرگی و کوچکی حروف، انتخاب تمام ایندکسها و قرار دادنشان در یک آرایه و یا … را نیز استفاده کنیم؛ که در غیر اینصورت، همان روش اول، با روش دوم یکسان است.
نظرات ثبت شده بدون دیدگاه