NET/מערכים

מתוך ויקיספר, אוסף ספרי הלימוד והמדריכים החופשי.

< NET
קפיצה אל: ניווט, חיפוש
תכנות בסביבת NET






[עריכת תבנית]


המערך ב-NET. מממש את מבנה הנתונים הבסיסי ביותר - רצף של ערכים מאותו סוג. ישנן כמה דרכים להגדרת מערך.

מערך ריק בעל חמש מקומות:

C#:

int[] intArr = new int[5];


מערך דו מימדי בגדול של 4X6:

C#:

int[,] intArr = new int[4,6];


מערך עם ערכים מוגדרים מראש:

C#:

int[] intArr = new int[] {1, 2, 3, 4, 5};


מערך בן חמש מקומות, שרק חלקם מאותחלים:

C#:

int[5] intArr = new int[] {1, 2, 3};


מערך ב-NET. הוא בלתי ניתן לשינוי (immutable). לאחר הגדרתו, לא ניתן לשנות את גודלו, אלא את הערכים של איבריו בלבד.

בדומה לשפות אחרות ממשפחת שפת C, גם ב-#C הגישה אל איברים במערך נעשית בעזרת אינדקס, כאשר האיבר הראשון ממוספר באפס. כדי לקבל את האיבר הראשון במערך שהוגדר לעיל, נכתוב

C#:

int n = intArr[0];


כמו במשתנים רגילים, גם מערכים לא מחזיקים את האובייקט עצמו, אלא רק התייחסות למיקומו בזיכרון.

כל המערכים ב-NET. הם למעשה אובייקטים של המחלקה System.Array. מחלקה זו מממשת את הממשקים IList ו-IEnumerable הנפוצים במחלקות מבני הנתונים של NET. משתנה מסוג מערך מכיל את השגרות של מחלקה זו. המחלקה גם מכילה מספר שגרות סטטיות שניתן להפעיל על משתני מערך, כדי להשיג מידע עליהם. למעשה תיאורטית ניתן להשתמש ישירות במחלקה Array, אך היא אינה מכילה בנאי, וניתן ליצור אובייקט שלה רק באחת הדרכים שהוזכרו למעלה. למשל, ההגדרה הבאה היא הגדרה חוקית:

C#:

Array arr = new int[5];


אך בדרך כלל לא נשתמש בצורה זו. בין היתר, משום שלא ניתן לגשת לאיבר מסויים בעזרת האינדקס המתואר לעיל, אלא רק בעזרת השגרה Array.GetValue.

[עריכה] מערכים רב מימדיים

[עריכה] מערכים מרובעים

בנוסף למערך חד מימדי, שהוא סדרה יחידה של נתונים כמתואר לעיל, ניתן לבנות גם מערכים רב מימדיים. למשל, מערך דו מימדי הוא מערך ריבועי בן מספר שורות ומספר עמודות. כל איבר במערך זה מיוצג על ידיי שני אינדקסים - מספר השורה שלו ומספר העמודה שלו.

מערך דו מימדי בגודל של 4 עמודות ו-6 שורות:

C#:

int[,] intArr = new int[4,6];


באותו אופן, ניתן להגדיר מערך תלת מימדי, או בכל מספר רצוי של מימדים. מערכים בני יותר משלוש מימדים קשה יותר להקביל למושגי אורך, רוחב ועומק, אך מבחינה מתמטית, אין מניעה מלהשתמש בהם.

[עריכה] מערכים משוננים