NET/מערכים
מתוך ויקיספר, אוסף ספרי הלימוד והמדריכים החופשי.
| תכנות בסביבת NET |
|---|
|
| [עריכת תבנית] |
המערך ב-NET. מממש את מבנה הנתונים הבסיסי ביותר - רצף של ערכים מאותו סוג. ישנן כמה דרכים להגדרת מערך.
מערך ריק בעל חמש מקומות:
C#:
מערך דו מימדי בגדול של 4X6:
C#:
מערך עם ערכים מוגדרים מראש:
C#:
מערך בן חמש מקומות, שרק חלקם מאותחלים:
C#:
מערך ב-NET. הוא בלתי ניתן לשינוי (immutable). לאחר הגדרתו, לא ניתן לשנות את גודלו, אלא את הערכים של איבריו בלבד.
בדומה לשפות אחרות ממשפחת שפת C, גם ב-#C הגישה אל איברים במערך נעשית בעזרת אינדקס, כאשר האיבר הראשון ממוספר באפס. כדי לקבל את האיבר הראשון במערך שהוגדר לעיל, נכתוב
C#:
כמו במשתנים רגילים, גם מערכים לא מחזיקים את האובייקט עצמו, אלא רק התייחסות למיקומו בזיכרון.
כל המערכים ב-NET. הם למעשה אובייקטים של המחלקה System.Array. מחלקה זו מממשת את הממשקים IList ו-IEnumerable הנפוצים במחלקות מבני הנתונים של NET. משתנה מסוג מערך מכיל את השגרות של מחלקה זו. המחלקה גם מכילה מספר שגרות סטטיות שניתן להפעיל על משתני מערך, כדי להשיג מידע עליהם. למעשה תיאורטית ניתן להשתמש ישירות במחלקה Array, אך היא אינה מכילה בנאי, וניתן ליצור אובייקט שלה רק באחת הדרכים שהוזכרו למעלה. למשל, ההגדרה הבאה היא הגדרה חוקית:
C#:
אך בדרך כלל לא נשתמש בצורה זו. בין היתר, משום שלא ניתן לגשת לאיבר מסויים בעזרת האינדקס המתואר לעיל, אלא רק בעזרת השגרה Array.GetValue.
[עריכה] מערכים רב מימדיים
[עריכה] מערכים מרובעים
בנוסף למערך חד מימדי, שהוא סדרה יחידה של נתונים כמתואר לעיל, ניתן לבנות גם מערכים רב מימדיים. למשל, מערך דו מימדי הוא מערך ריבועי בן מספר שורות ומספר עמודות. כל איבר במערך זה מיוצג על ידיי שני אינדקסים - מספר השורה שלו ומספר העמודה שלו.
מערך דו מימדי בגודל של 4 עמודות ו-6 שורות:
C#:
באותו אופן, ניתן להגדיר מערך תלת מימדי, או בכל מספר רצוי של מימדים. מערכים בני יותר משלוש מימדים קשה יותר להקביל למושגי אורך, רוחב ועומק, אך מבחינה מתמטית, אין מניעה מלהשתמש בהם.