کلاس 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 به destination5. پاکسازی (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 در سیشارپ ابزارهای قدرتمندی برای مدیریت آرایهها به شما میدهد. ویژگیها و متدهای آن به ما کمک میکنند تا بتوانیم به راحتی با آرایهها کار کنیم، اندازه آنها را بیابیم، آنها را مرتب یا پاکسازی کنیم و یا حتی جستجو و کپیبرداری انجام دهیم.
همچنین اگر به خواندن فایلهای متنی در سیشارپ علاقهمند هستید، مطالعه مقالات زیر میتواند برای شما مفید باشد:
برای افزودن دیدگاه خود، نیاز است ابتدا وارد حساب کاربریتان شوید