کلاس Array
یکی از کلاسهای اصلی در زبان برنامهنویسی سیشارپ است که برای کار با مجموعهای از عناصر از یک نوع مشخص استفاده میشود. این کلاس ابزارهای مختلفی برای ایجاد، مدیریت و دسترسی به آرایهها در اختیار ما قرار میدهد. در این مقاله با ویژگیهای کلیدی این کلاس، متدها و برخی از قابلیتهای مهم آن آشنا خواهیم شد.
اگر میخواهید برنامهنویسی در سیشارپ را به طور کامل یاد بگیرید و با تمامی امکانات آن آشنا شوید، پیشنهاد میکنم به دورههای زیر رو حتما ببینید.
ویژگیها و خصوصیات کلاس Array
کلاس Array
امکانات زیادی در اختیار ما میگذارد که به کمک آن میتوانیم آرایهها را بهتر مدیریت کنیم. در ادامه به برخی از مهمترین ویژگیهای این کلاس اشاره خواهیم کرد:
1. طول (Length)
ویژگی Length
تعداد کل عناصر موجود در یک آرایه را بازمیگرداند. این ویژگی به ما کمک میکند تا بتوانیم اندازهٔ یک آرایه را بهسادگی تعیین کنیم. به عنوان مثال:
int[] numbers = { 1, 2, 3, 4, 5 };
int length = numbers.Length; // مقدار 5 را برمیگرداند
2. طول بلند (LongLength)
ویژگی LongLength
مشابه Length
است، اما از نوع داده long
استفاده میکند و برای آرایههای بسیار بزرگ کاربرد دارد.
long longLength = numbers.LongLength; // مقدار 5 را برمیگرداند
3. تعداد ابعاد (Rank)
ویژگی Rank
تعداد ابعاد آرایه را مشخص میکند. این ویژگی در مواقعی که با آرایههای چندبعدی سروکار داریم بسیار کاربردی است:
int[,] matrix = new int[3, 4];
int rank = matrix.Rank; // مقدار 2 را برمیگرداند
4. اندازه ثابت (IsFixedSize)
ویژگی IsFixedSize
تعیین میکند که آیا آرایه اندازه ثابتی دارد یا خیر. در مورد آرایهها همیشه مقدار true
برمیگردد زیرا آرایهها دارای اندازه ثابت هستند.
bool isFixedSize = numbers.IsFixedSize; // مقدار true را برمیگرداند
5. فقط خواندنی (IsReadOnly)
ویژگی IsReadOnly
تعیین میکند که آیا آرایه فقط خواندنی است یا خیر. در مورد آرایهها همیشه مقدار false
برمیگردد زیرا آرایهها قابل تغییر هستند.
bool isReadOnly = numbers.IsReadOnly; // مقدار false را برمیگرداند
6. همزمانی (IsSynchronized)
ویژگی IsSynchronized
تعیین میکند که آیا دسترسی به آرایه به صورت ایمن در برابر دسترسی همزمان (thread-safe) است یا خیر. معمولاً مقدار false
برمیگردد.
bool isSynchronized = numbers.IsSynchronized; // مقدار false را برمیگرداند
متدهای کلاس Array
کلاس Array
شامل چندین متد کاربردی است که برای انجام عملیاتهای مختلف بر روی آرایهها میتوان از آنها استفاده کرد. در ادامه به برخی از مهمترین متدهای این کلاس اشاره میکنیم:
1. مرتبسازی (Sort)
متد Sort
برای مرتبسازی عناصر آرایه به کار میرود. برای مثال، میتوانیم یک آرایه را بهسادگی مرتب کنیم:
int[] values = { 5, 3, 8, 1, 4 };
Array.Sort(values); // آرایه را به صورت صعودی مرتب میکند
2. معکوس کردن (Reverse)
متد Reverse
عناصر یک آرایه را به ترتیب معکوس قرار میدهد:
int[] values = { 1, 2, 3, 4, 5 };
Array.Reverse(values); // آرایه را معکوس میکند: { 5, 4, 3, 2, 1 }
3. جستجو (IndexOf)
کلاس Array
چندین متد برای جستجو در آرایه دارد. یکی از مهمترین متدها IndexOf
است که میتواند ایندکس یک عنصر خاص را پیدا کند:
int index = Array.IndexOf(values, 3); // ایندکس عنصر با مقدار 3 را پیدا میکند
4. کپیبرداری (Copy)
برای کپی کردن مقادیر از یک آرایه به آرایه دیگر میتوان از متد Copy
استفاده کرد. این متد این امکان را فراهم میکند که بهسادگی عناصر یک آرایه را به آرایه دیگری انتقال دهیم:
int[] source = { 1, 2, 3 };
int[] destination = new int[3];
Array.Copy(source, destination, 3); // کپی مقادیر از source به destination
5. پاکسازی (Clear)
متد Clear
تمام عناصر یک آرایه را به مقدار پیشفرضشان (برای نوع دادهای مربوطه) تنظیم میکند. برای مثال، برای آرایهای از اعداد صحیح، همه عناصر به صفر تنظیم میشوند:
Array.Clear(values, 0, values.Length); // تمام عناصر آرایه values را به صفر تنظیم میکند
6. تعیین ابعاد (GetLength)
متد GetLength
برای تعیین طول یک بعد خاص از آرایه استفاده میشود:
int[,] matrix = new int[3, 4];
int length = matrix.GetLength(0); // طول بعد اول (3) را برمیگرداند
7. تبدیل به آرایه فقط خواندنی (AsReadOnly)
متد AsReadOnly
یک نسخه فقط خواندنی از آرایه برمیگرداند.
var readOnlyArray = Array.AsReadOnly(values);
8. جستجوی دودویی (BinarySearch)
متد BinarySearch
برای جستجوی یک مقدار در یک آرایه مرتبشده استفاده میشود.
int foundIndex = Array.BinarySearch(values, 3);
9. تبدیل همه عناصر (ConvertAll)
متد ConvertAll
برای تبدیل تمامی عناصر آرایه به نوع دیگری استفاده میشود.
string[] strings = Array.ConvertAll(values, item => item.ToString());
10. ایجاد یک آرایه خالی (Empty)
متد Empty
یک آرایه خالی از نوع مشخص ایجاد میکند.
int[] emptyArray = Array.Empty<int>();
11. پیدا کردن اولین عنصر (Find)
متد Find
اولین عنصری که شرط مشخصی را برقرار میکند، پیدا میکند.
int foundValue = Array.Find(values, value => value > 3);
12. پیدا کردن همه عناصر (FindAll)
متد FindAll
تمامی عناصری که شرط مشخصی را برقرار میکنند، پیدا میکند.
int[] allFound = Array.FindAll(values, value => value > 3);
13. پیدا کردن ایندکس (FindIndex)
متد FindIndex
اولین ایندکسی که شرط مشخصی را برقرار میکند، بازمیگرداند.
int foundIndex = Array.FindIndex(values, value => value == 3);
14. پیدا کردن آخرین عنصر (FindLast)
متد FindLast
آخرین عنصری که شرط مشخصی را برقرار میکند، پیدا میکند.
int lastFoundValue = Array.FindLast(values, value => value < 5);
15. پیدا کردن آخرین ایندکس (FindLastIndex)
متد FindLastIndex
آخرین ایندکسی که شرط مشخصی را برقرار میکند، بازمیگرداند.
int lastFoundIndex = Array.FindLastIndex(values, value => value < 5);
16. اجرای عملیاتی روی هر عنصر (ForEach)
متد ForEach
برای اجرای یک عملیات بر روی تمامی عناصر آرایه استفاده میشود.
Array.ForEach(values, value => Console.WriteLine(value));
17. دریافت Enumerator (GetEnumerator)
متد GetEnumerator
یک Enumerator برای پیمایش عناصر آرایه برمیگرداند.
var enumerator = values.GetEnumerator();
18. دریافت طول بلند (GetLongLength)
متد GetLongLength
طول یک بعد خاص از آرایه را به صورت long
بازمیگرداند.
long longLength = matrix.GetLongLength(0);
19. دریافت مرز پایین (GetLowerBound)
متد GetLowerBound
کمترین ایندکس قابل دسترسی در بعد مشخصی از آرایه را بازمیگرداند.
int lowerBound = matrix.GetLowerBound(0);
20. دریافت نوع (GetType)
متد GetType
نوع آرایه را بازمیگرداند.
Type arrayType = values.GetType();
21. دریافت مرز بالا (GetUpperBound)
متد GetUpperBound
بالاترین ایندکس قابل دسترسی در بعد مشخصی از آرایه را بازمیگرداند.
int upperBound = matrix.GetUpperBound(0);
22. دریافت مقدار (GetValue)
متد GetValue
مقدار عنصر در یک ایندکس خاص را بازمیگرداند.
int value = (int)matrix.GetValue(1, 2);
23. تغییر اندازه (Resize)
متد Resize
اندازه یک آرایه را تغییر میدهد.
Array.Resize(ref values, 10);
24. تنظیم مقدار (SetValue)
متد SetValue
مقدار یک عنصر را در یک ایندکس خاص تنظیم میکند.
matrix.SetValue(10, 1, 2);
نتیجهگیری
کلاس Array
در سیشارپ ابزارهای قدرتمندی برای مدیریت آرایهها به شما میدهد. ویژگیها و متدهای آن به ما کمک میکنند تا بتوانیم به راحتی با آرایهها کار کنیم، اندازه آنها را بیابیم، آنها را مرتب یا پاکسازی کنیم و یا حتی جستجو و کپیبرداری انجام دهیم.
همچنین اگر به خواندن فایلهای متنی در سیشارپ علاقهمند هستید، مطالعه مقالات زیر میتواند برای شما مفید باشد:
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید