• مقدمه

تا کنون شما دیدید که چگونه مجموعه‌ای از ارقام را در آرایه‌ها ذخیره کنیم؛ به‌ همین ترتیب نیز شما می‌توانید رشته‌ها را در آرایه‌های خود ذخیره کنید. در این بخش ما کمی در رابطه با رشته‌ها به‌بیان جزئیات بیشتری خواهیم پرداخت.

  • بکارگیری رشته‌ها در آرایه‌ها

با استفاده از پروژه‌های سابق، یک button به فرم خود اضافه کرده و مشخصه Text آن را به String Arrays تغییر دهید. روی آن دابل کلیک کنید تا وارد بخش کدنویسی آن شوید.

برای اینکه متنی را در آرایه ذخیره کنید، می‌بایست نوع آرایه را از جنس string انتخاب کنید؛ شکل کلی تعریف آرایه همچنان ثابت خواهد ماند.

string[] arrayStrings;

arrayStrings = new string[5];

بنابراین کد بالا آرایه‌ای با ۵ خانه برای شما در حافظه رزرو خواهد کرد که بتواند مقادیری از اون متن در خود ذخیره کند.

اکنون این ۵ خانه را مقدار دهی می‌کنم؛ دقیقاً به همان شکلی که آرایه‌های int را مقدار دهی می‌کردیم:

arrayStrings[0] = “This”;

arrayStrings[1] = “is”;

arrayStrings[2] = “a”;

arrayStrings[3] = “string”;

arrayStrings[4] = “array”;

کدهای بالا را نیز به کدهای مربوط به button جدید خود اضافه کنید تا در ادامه حلقه‌ی ForEach را برای شما معرفی کنیم.

حلقه‌ای جدید با نام ForEach

همانند قبل، برای اینکه به تک‌تک خانه‌های موجود در آرایه‌ی خود دسترسی پیدا کنید، می‌بایست که از یک حلقه for استفاده کرده تا در تک‌تک خانه‌های موجود گشت بزنید و مقادیر آن‌ها را به خروجی بدهید. چیزی شبیه به کد زیر:

for (int i=0; i != (arrayStrings.Length); i++)

{

            listBox1.Items.Add(arrayStrings[i]);

}

اما ما حلقه‌ی دیگری داریم که تا کنون با آن آشنا نبوده‌اید که به آن حلقه foreach می‌گویند. این حلقه زمانی برای شما کاربرد خواهد داشت که در حال کار کردن با «مجموعه»ای از مقادیر هستید. نحوه‌کار کردن با این حلقه را برای شما توضیح خواهیم داد، اما فعلاً کد زیر را بجای کد بالا در ادامه کدهایتان قرار دهید:

foreach (string ArrayElement in arrayStrings)

{

            listBox1.Items.Add(ArrayElement);

}

کد بالا که در Visual Studio کپی کرده‌اید، به کلمات کلیدی (Keywords) که با رنگ آبی مشخص می‌شوند دقت کنید که در کجاها قرار گرفته‌اند. شما ابتدا با کلمه foreach شروع کرده و به همراه آن، یک جفت پرانتز باز-بسته در مقابل آن قرار داده و با اضافه کردن یک جفت براکت باز-بسته، محدود حلقه خود را مشخص می‌کنید.

به کد موجود در میان پرانتز دقت کنید؛

string ArrayElement in arrayStrings

در واقع کد بالا حاوی دو بخش است که ما آن را در یک بخش می‌نویسم. در قسمت اول، یعنی string ArrayElement، شما یک متغیر جدیدی از همان نوع (string) تعریف می‌کنید. این متغیر جدید، المان‌های موجود در هر یک (معنی کلمه for each) از مکان‌ موجود در آرایه‌ی خود را در نزد خودش نگه‌داری می‌کنید. در قسمت دوم، مکانی‌ست که شما به سی‌شارپ می‌گویید که نام آرایه/مجموعه شما چیست که پس از استفاده از کلمه کلیدی in، نام آن را می‌نویسید.

در واقع این حلقه در هر مرحله از اجرای خود، تک‌تک خانه‌های آرایه/مجموعه نام‌برده شده را گشت می‌زند، آن را در ArrayElement ذخیره می‌کند و سپس آن را به listBox اضافه می‌کند. به عکس زیر هم دقت کنید که مفهوم حلقه foreach را برای شما ساده‌تر می‌کند:

1-foreach2

نرم‌افزار خود را اجرا کنید؛‌ بر روی button جدید کلیک کرده، می‌بایست نتیجه مشابه زیر باشد:

2-string_array_form

جهت دریافت این بخش آموزشی بصورت یک فایل PDF، اینجا را کلیک کنید.

نظرات کاربران
اشتراک در
اطلاع از
24 نظرات
نادیا
13 سال قبل

سلام
ممنون از آموزشتون
می شه بگید Regex چه کاری رو انجام می ده
و اینکه چطور در لیست باکس یه اینتر بزنیم؟
مثل همون \n یا endl در C++ منظورمه!

نادیا
13 سال قبل

ببینید می خوام کدی بنویسم که مثلا رشته ی :
Choose the word
رو بگیره و کلمه به کلمه زیر هم نشون بده
که بعد از زدن کلید اینجوری نشونش می ده:
Choose
the
word
حالا یه رشته دیگه وارد می کنم:
that has the same meaning
که بعد از زدن کلید چیزی که تو لیست باکس هست اینه:
Choose
the
word
that
has
the
same
meaning
ولی می خوام نتیجه این باشه:
Choose
the
word

that
has
the
same
meaning
بین دفعه ی اول و دوم یه اینتر بزنه، یه سطر خالی!

نادیا
پاسخ به  Jeff Mosawy
13 سال قبل

خیلی خیلی ممنون

سمانه
13 سال قبل

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

نادیا
13 سال قبل

دوباره سلام
یه جمله رو مثل همونی که دفعه ی قبل گفتم که تو txtbox نشون دادم
حالا می خوام تو فرمم به treeviwe داشته یاشم و تیکه تیکه تو اون نشون بدم
این برنامه :
http://barnamenevis.org/showthread.php?324761-%D8%B3%D9%88%D8%A7%D9%84-%D8%AF%D8%B1-%D9%85%D9%88%D8%B1%D8%AF-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%AF%D8%B1%D8%AE%D8%AA-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE
رو دیدم ولی زیاد نتومستم ازش استفاده کنم
ممنون می شم راهنمایی کنید

نادیا
پاسخ به  Jeff Mosawy
13 سال قبل

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

Dim tv As New TreeNode
tv.Text = “ali”
tv.Name = “12”
TreeView1.Nodes.Add(tv)

خیلی خوشحالم که کسی هست که کمک کنه و به سوالاتم جواب بده
ممنون

نادیا
13 سال قبل

سلام
یه رشته رو قسمت بندی کردم و به صورت درختی نشون دادم اینجوری:
ریشه
فرزند
فرزند
فرزند
….
حالا می خوام رشته ی بعدی رو که وارد می کنم بیاد اینو بررسی کنه
تا جایی که با قبلی مشترکه دیگه دوباره ننویسه و بیاد از ادامه قسمت بندی کنه، لینجوری:
ریشه
فرزند
فرزند فرزند
فرزند
….

یا مثلا:

ریشه
فرزند فرزند
فرزند
فرزند
….

می دونید چطوری می شه؟

نادیا
پاسخ به  نادیا
13 سال قبل
ع.ا
13 سال قبل

سلام
PDF این قسمت را فراموش کردید قرار بدید .. همه PDF ها هستند الا این بخش ..
از آموزش های خوبتون بسیار ممنون .. موفق باشید

عادل
13 سال قبل

سلام
اماکنش هست این آموزش را به صورت PDF هم قرار دهید.
با تشکر

سمیه
پاسخ به  Jeff Mosawy
11 سال قبل

سلام
Jeff Mosawy چرا آموزش سی شارپ ادامه نمیدید؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

خیلی بده نصفه رهاش کردید

zahra
12 سال قبل

با سلام
سوال من ربطی به این مبحث نداره اما در تخصص شماست.
داخل form یک سری نقاط تصادفی با system.drowing ایجاد کردم.حالا میخوام فاصله این نقاط از هم و مختصاتشونو به دست بیارم.
میتونید کمکم کنید؟

محسن
11 سال قبل

سلام
خدا قوت من تازه آشنا شدم با گویا

بیصبرانه منتظر ادامش هستم.

با آرزوی موفقیت ضمن تشکر فراوان

سارا
11 سال قبل

سلام خسته نباشید واقعا ممنون از کارتون.
ببخشید آموزشهای قسمت ۴۳ تا ۴۸ رو قرار ندادید توی سایت؟
آخه فقط تکست هستن و نمیشه روی اونها کلیک کرد. آموزش این قسمت ها رو میخوام.مرسی

چرا ادامه ندادید
11 سال قبل

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

جواد
10 سال قبل

با تشکر
موفق باشید.

tuesday
10 سال قبل

سلام با چه روشی میتوان سریعتر نرم افزار ساخت ایده ام شباهت به افیس دارد

عادل
10 سال قبل

سلام

لینک های آموزش قسمت ۴۳ تا ۴۸ مشکل داره.
لطفا بررسی بفرمائید.