صفت Length
نام دوره: زبان سی شارپ مقدماتی
نویسنده: علی مقدم جاه (مدرس دوره)
پراپرتی Length چیست؟
پراپرتی Lentgh در دو جا کاربرد دارد:
1. در رشتهها
درصورتی که بخواهید طول رشتهای را بدست آورید، کافی است تا از پراپرتی Length استفاده کنید:
string a = "kaarisho";
Console.WriteLine(a.Length);
:خروجی
8
در مثال فوق از آنجایی که رشته kaarisho دارای هشت حرف بوده، پس پراپرتی Length آن را شمرده و درخروجی چاپ شد.
2. در آرایهها
وقتی شما آرایه ای داشته باشید، می توانید برای بدست آوردن تعداد خانههای آن آرایه، از صفت Length استفاده کنید.
فرض کنید شما یک آرایه از جنس int به نام age دارید که ۱۰ خانه در آن وجود دارد، برای چاپ کردن مقادیر داخل این آرایه به راحتی میتوانید از حلقه foreach استفاده کنید:
int[] age = {15, 16, 18, 17, 19, 20, 27, 28, 25, 24};
foreach(var item in age)
{
Console.WriteLine(item);
}
خروجی
15
16
18
17
19
20
27
28
25
24
قطعا حرکت کردن روی خانههای یک مجموعه با حقله foreach راحتتر از تمامی حلقههای دیگر است، اما شما فرض کنید بنا به هر دلیلی مجبور به استفاده از حلقه for شدهاید:
int[] age = {15, 16, 18, 17, 19, 20, 27, 28, 25, 24};
for(int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}
خروجی
15
16
18
17
19
20
27
28
25
24
خب در این مثال، چون تعداد خانههای آرایه age کم بود به راحتی توانستیم با شمردن دستی آن به عدد 10 برسیم و در نقطه پایان حلقه for قرار دهیم، اما یه سوال! اگر آرایه به شکل زیر بود چی ؟!
int[] age = {15, 16, 18, 17, 19, 20, 27, 46, 78, 13, 14, 11, 15, 16, 20, 21, 22, 23,
24, 25, 26, 27, 30, 38, 37, 39, 40, 45, 46, 49, 57, 58, 89, 98, 28, 25, 24}, 15,
16, 18, 17, 19, 20, 27, 46, 78, 13, 14, 11, 15, 16, 20, 21, 22, 23, 24, 25, 26,
27, 30, 38, 37,15, 16, 18, 17, 19, 20, 27, 46, 78, 13, 14, 11, 15, 16, 20, 21, 22,
23, 24, 25, 26, 27, 30, 38, 37, 15, 16, 18, 17, 19, 20, 27, 46, 78, 13, 14, 11, 15,
16, 20, 21, 22, 23, 24, 25, 26, 27, 30, 38, 37, 15, 16, 18, 17, 19, 20, 27, 46, 78,
13, 14, 11, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 30, 38, 37};
قطعا دیگر شمردن تعداد خانههای آرایه توسط برنامهنویس کار منطقیای نیست!
در این زمانها میتوانید از صفت Length استفاده کنید تا به جای شما، تعداد خانههای آرایه age را در کثری از ثانیه شمارش کند:
int[] age = {15, 16, 18, 17, 19, 20, 27, 28, 25, 24};
for(int i = 0; i < age.Length; i++)
{
Console.WriteLine(i);
}
خروجی
15
16
18
17
19
20
27
28
25
24
در این مثال، صفت Length به شناسه آرایه age چسبیده است، در اصل یعنی age فراخوانی کننده صفت Length است.
در نتیجه باید صفت Length به سراغ مجموعه age برود و تمامی خانههای آن مجموعه را پس از شمردن بازگرداند و جای age.Length مقابل i < age.Length بگذارد.
نکته: این صفت برای کالکشنها مورد استفاده قرار نگرفته و تنها برای آرایهها است! برای استفاده از همچین قابلیتی در کالکشنها، باید از صفت Count استفاده کنید.
جهت شرکت در دورههای زبان برنامه نویسی سیشارپ، از کد تخفیف heplc30 استفاده کنید.