העתקת מערכים
חלק מהיחידה יסודות במסלול ה-C# של Coddy. שיעור 58 מתוך 70.
כדי להעתיק איברים ממערך אחד לאחר, השתמשו ב־Array.Copy. הוא מקבל חמישה ארגומנטים:
Array.Copy(source, sourceIndex, destination, destinationIndex, length);הוא מעתיק length איברים מתוך source, החל מ־sourceIndex, וכותב אותם לתוך destination, החל מ־destinationIndex. מערך היעד חייב כבר להתקיים ולהיות גדול מספיק.
הארגומנט האחרון הוא מספר: כמה איברים להעתיק, ולא היכן לעצור.
int[] scores = {90, 75, 60, 85};
int[] firstTwo = new int[2];
Array.Copy(scores, 0, firstTwo, 0, 2);
// הערך של firstTwo יהיה {90, 75}destinationIndex הוא המקום שאליו מגיע האיבר הראשון שהועתק. שימוש ב־source.Length בתור הכמות מעתיק את כל המערך, בלי קשר לגודלו:
int[] source = {1, 2, 3};
int[] destination = new int[6];
Array.Copy(source, 0, destination, 3, source.Length);
// destination יהיה {0, 0, 0, 1, 2, 3}כדי להציב מערך אחד אחרי מערך אחר, העתיקו את המערך השני למיקום שבו הראשון מסתיים. המיקום הזה הוא ה-Length של המערך הראשון:
int[] first = {1, 2};
int[] second = {7, 8, 9};
int[] all = new int[first.Length + second.Length];
Array.Copy(first, 0, all, 0, first.Length);
Array.Copy(second, 0, all, first.Length, second.Length);
// הערך של all יהיה {1, 2, 7, 8, 9}כששני המערכים מתחילים באינדקס 0, יש צורה קצרה יותר, Array.Copy(source, destination, length):
int[] source = {4, 5, 6, 7};
int[] destination = new int[3];
Array.Copy(source, destination, 3);
// destination יהיה {4, 5, 6}אתגר
קלצרו מתודה בשם AddToEnd שמקבלת מערך של מחרוזות ומחרוזת item. היא מחזירה מערך חדש שמכיל את כל איברי המערך, באותו סדר, כאשר item נוסף בסוף.
לדוגמה, AddToEnd(new string[] {"a", "b", "c"}, "d") מחזירה ["a", "b", "c", "d"].
השתמשו ב-Array.Copy() כדי להעתיק את האיברים למערך החדש.
פורמט הקלט (2 שורות):
- שורה 1: איברי המערך מופרדים בפסיקים (למשל
a,b,c) - שורה 2: הפריט להוספה (למשל
d)
פורמט הפלט: איברי המערך החדש מופרדים בפסיק וברווח (למשל a, b, c, d)
נסו בעצמכם
using System;
public class Program {
public static string[] AddToEnd(string[] arr, string item) {
// כתבו כאן את הקוד
}
public static void Main(string[] args) {
string[] arr = Console.ReadLine().Split(',');
string item = Console.ReadLine();
string[] result = AddToEnd(arr, item);
Console.WriteLine(string.Join(", ", result));
}
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 1
אופרטורים אריתמטייםאופרטור מודולוהגדלה/הקטנההגדלה/הקטנה אחרי הפעולהקיצורים אריתמטיים5אופרטורים חלק 2
אופרטורי השוואהאופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2סיכום — לוגיקה פשוטהאופרטורים לוגיים חלק 311יסודות המערכים
הצהרת מערכיםגישה לאיבריםשינוי מערכיםהעתקת מערכיםמתודות של מערכיםסיכום – מערך המכפלותעריכת הסיכום – מערך הפוךתרגלו בעצמכם: קומפיילר C# אונליין