תרגיל - תחילת העבודה עם יסודות המערך
- 19 דקות
ניתן להשתמש במערכים לאחסון ערכים מרובים מאותו סוג במשתנה יחיד. הערכים המאוחסנים במערך קשורים בדרך כלל. לדוגמה, ניתן לאחסן רשימה של שמות תלמידים במערך מחרוזות בשם students.
עבודתך במחלקה תתמקד במציאת תבנית להזמנות הונאה. אתה מעוניין שהקוד שלך יעיין בהזמנות קודמות של הלקוחות ויזהה סמנים המשויכים להזמנות הונאה. החברה שלך מקווה שהסמנים יוכלו לשמש לזיהוי הזמנות רכישה פוטנציאליות של הונאה בעתיד לפני עיבודן. מאחר שאינך תמיד יודע מראש כמה הזמנות עליך לסקור, לא ניתן ליצור משתנים בודדים כדי להזין כל מזהה הזמנה. כיצד ניתן ליצור מבנה נתונים כדי להוסיף ערכים קשורים מרובים?
בתרגיל זה, אתה משתמש במערכים כדי לאחסן ולנתח אוסף של מספרי הזמנות.
מהו מערך?
מערך הוא אוסף של רכיבי נתונים בודדים הנגישים באמצעות שם משתנה יחיד. השתמש באינדקס מספרי מבוסס-אפס כדי לגשת לכל רכיב במערך. מערכים מאפשרים לך ליצור אוסף של ערכי נתונים המשתפים מטרה או מאפיינים נפוצים תחת שם משתנה יחיד לעיבוד קל יותר.
הצהרה על מערכים וגישה לרכיבים במערך
מערך הוא סוג מיוחד של משתנה ה יכול לכלול ערכים מרובים מאותו סוג נתונים. תחביר ההצהרה שונה במקצת עבור מערך מאחר שתצטרך לציין הן את סוג הנתונים והן את גודל המערך.
הכנת סביבת הקידוד שלך
מודול זה כולל פעילויות שמנחה אותך לאורך תהליך הבנייה וההפעלה של קוד לדוגמה. מומלץ להשלים פעילויות אלה באמצעות Visual Studio Code כסביבת הפיתוח שלך. השימוש בקוד Visual Studio עבור פעילויות אלה עוזר לך להיות נוח יותר לכתיבה והפעלה של קוד בסביבת מפתחים המשמשת מומחים ברחבי העולם.
פתח את Visual Studio Code.
באפשרותך להשתמש בתפריט ההתחלה של Windows (או במשאב שווה ערך עבור מערכת הפעלה אחרת) כדי לפתוח את Visual Studio Code.
בתפריט קובץ קוד של Visual Studio, בחר פתח תיקיה.
בתיבת הדו-שיח פתיחת תיקיה, נווט אל תיקיית שולחן העבודה של Windows.
אם יש לך מיקום תיקיה אחר שבו אתה שומר פרוייקטים של קוד, באפשרותך להשתמש במיקום תיקיה זה במקום זאת. להדרכה זו, הדבר החשוב הוא שיהיה לך מיקום שקל לאתר ולזכור.
בתיבת הדו-שיח פתיחת תיקיה, בחר בחר תיקיה.
אם אתה רואה תיבת דו-שיח של אבטחה השואלת אם אתה נותן אמון בעורכים, בחר כן.
בתפריט מסוף קוד Visual Studio , בחר מסוף חדש.
שים לב שבקשה לפקודה בלוח המסוף מציגה את נתיב התיקיה עבור התיקיה הנוכחית. לדוגמה:
C:\Users\someuser\Desktop>הערה
אם אתה עובד במחשב שלך ולא בסביבת ארגז חול או סביבה מתארחת והשלמת מודולים אחרים של Microsoft Learn בסדרת C# זו, ייתכן שכבר יצרת תיקיית פרוייקט עבור דוגמאות קוד. במקרה זה, באפשרותך לדלג על השלב הבא, המשמש ליצירת יישום מסוף בתיקיה TestProject.
בשורת הפקודה של המסוף, כדי ליצור יישום מסוף חדש בתיקיה שצוינה, הזן את הבקשה הבאה:
dotnet new console -o ./CsharpProjects/TestProjectפקודה זו של .NET CLI משתמשת בתבנית של תוכנית .NET כדי ליצור פרוייקט יישום חדש של מסוף C# במיקום התיקיה שצוין. הפקודה יוצרת עבורך את התיקיות CsharpProjects ו- TestProject, ומשתמשת ב- TestProject כשם
.csprojהקובץ.אם מוצגת הודעה המציינת שהקבצים כבר קיימים, המשך לשלבים הבאים. תוכל לעשות שימוש חוזר בקובצי הפרוייקט הקיימים.
בתצוגת EXPLORER, הרחב את התיקיה CsharpProjects .
אתה אמור לראות את התיקיה TestProject ושני קבצים, קובץ תוכנית C# בשם Program.cs וקובץ פרוייקט C# בשם TestProject.csproj.
בתפריט קובץ קוד של Visual Studio, בחר פתח תיקיה.
בתיבת הדו-שיח פתיחת תיקיה, בחר את התיקיה CsharpProjects ולאחר מכן בחר בחר תיקיה.
בתצוגת EXPLORER, הרחב את התיקיה TestProject ולאחר מכן בחר Program.cs.
מחק את שורות הקוד הקיימות.
יהיה עליך להשתמש בפרוייקט זה של מסוף C# כדי ליצור, לבנות ולהפעיל דוגמאות קוד במהלך מודול זה.
סגור את לוח המסוף.
הצהר על מערך חדש
כדי להצהיר על מערך חדש של מחרוזות ה יכולות להכיל שלושה רכיבים, הזן את הקוד הבא:
string[] fraudulentOrderIDs = new string[3];קח דקה כדי לבדוק את הקוד שלך.
האופרטור
newיוצר מופע חדש של מערך בזיכרון המחשב, ה יכול להכיל שלושה ערכי מחרוזת. לקבלת מידע נוסף אודות מילת המפתחnew, עיין במודול "התקשר לשיטות מספריית הכיתה של .NET באמצעות C#".שים לב שהערכה
[]fraudulentOrderIDsהראשונה של הסוגריים המרובעים רק מציינת את המהדר שמשתנה בשם הוא מערך,[3]אך קבוצת הסוגריים המרובעים השניה מציינת את מספר הרכיבים המערך יכול לחזק.הערה
דוגמה זו מדגימה כיצד להצהיר על מערך של מחרוזות, עם זאת,
intboolבאפשרותך ליצור מערך של כל סוג נתונים, כולל סוגי נתונים פרימיטיביים כגון וסוגי נתונים מורכבים יותר, כגון מחלקות. דוגמה זו משתמשת בפשטות המחרוזות כדי למזער את מספר הרעיונות החדשים שעליך להבין במהלך תחילת העבודה.
הקצאת ערכים לרכיבים במערך
בשלב זה, הצהרת על מערך של מחרוזות, אך כל רכיב במערך ריק. כדי לגשת לרכיב של מערך, עליך להשתמש באינדקס מספרי המבוסס על אפס בתוך סוגריים מרובעים. באפשרותך להקצות ערך לרכיב מערך תוך שימוש במשתנה = רגיל.
כדי להקצות ערכי מזהה הזמנה למערך שלך
fraudulentOrderIDs, עדכן את הקוד באופן הבא:string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789";קח דקה כדי לבדוק את הקוד שלך.
שים לב שאתה משתמש בשם המערך כדי לגשת לרכיבים במערך. ניתן לגשת לכל רכיב בנפרד על-ידי ציון מספר אינדקס מבוסס-אפס בתוך הסוגריים המרובעים.
מאחר שהערך שלך מוצהר כמחרוזת, הערכים שאתה מקצה חייבים להיות גם מחרוזות. בתרחיש זה, אתה מקצה את זהות ההזמנה לרכיבים של המערך.
ניסיון להשתמש באינדקס מחוץ לגבולות המערך
ייתכן שזה לא נראה אינטואיטיבי בהתחלה, אך חשוב לזכור שאתה מכריז על ספירת הרכיבים במערך. עם זאת, עליך לגשת לכל רכיב במערך החל מאפס. לכן, כדי לגשת לפריט השני במערך, השתמש באינדקס 1.
זה נפוץ למתחילים לשכוח שמערכים הם מבוססי אפס וניסיון לגשת לרכיב של המערך שאינו קיים. אם תעשה שגיאה זו, מתרחשת חריגת זמן ריצה המודיעה לך שניסית לגשת לרכיב הנמצא מחוץ לגבול המערך.
כדי "לנתק" בכוונה את היישום שלך, נסה לגשת לרכיב רביעי במערך שלך באמצעות ערך אינדקס של 3.
בחלק התחתון של קובץ הקוד, הזן את שורת הקוד הבאה:
fraudulentOrderIDs[3] = "D000";ודא שהקוד שלך תואם לדוגמה זו:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; fraudulentOrderIDs[3] = "D000";בתפריט קוד Visual Studio קובץ, בחר שמור.
בתצוגת EXPLORER, כדי לפתוח מסוף במיקום התיקיה TestProject, לחץ באמצעות לחצן העכבר הימני על TestProject ולאחר מכן בחר פתח במסוף משולב.
לוח מסוף אמור להיפתח, ועלי לכלול שורת פקודה המציגה שמסוף פתוח במיקום התיקיה TestProject שלך.
בשורת הפקודה של Terminal, כדי לבצע קומפילציה של הקוד שלך, הקלד
dotnet buildולאחר מכן הקש Enter.אתה אמור לראות את ההודעה הבאה:
Build succeeded. 0 Warning(s) 0 Error(s)בשורת הפקודה של Terminal, כדי להפעיל את הקוד, הקלד
dotnet runולאחר מכן הקש Enter.בעת הפעלת היישום, אתה מקבל את הודעת השגיאה הבאה של זמן ריצה:
Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array. at Program.<Main>$(String[] args) in C:\Users\someuser\Desktop\CsharpProjects\TestProject\Program.cs:line 6שים לב לחלקים הבאים של השגיאה:
- הודעת שגיאה:
System.IndexOutOfRangeException: Index was outside the bounds of the array. - מיקום שגיאה:
Program.cs:line 6
- הודעת שגיאה:
הוסף הערות בשורה שיצרה את שגיאת זמן הריצה.
// fraudulentOrderIDs[3] = "D000";
ראית כיצד להקצות ערך לרכיב מערך. כעת תראה כיצד לגשת לערך המאוחסן ברכיב מערך.
אחזור ערכים מרכיבים של מערך
גישה לערך של רכיב מערך פועלת בדיוק כמו הקצאת ערך לרכיב מערך. עליך רק לציין את האינדקס של הרכיב שאת הערך שלו ברצונך לאחזר.
כדי לכתוב את הערך של כל מזהה הזמנה של הונאה, עדכן את הקוד באופן הבא:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}");בתפריט קוד Visual Studio קובץ, בחר שמור.
בתצוגת EXPLORER, כדי לפתוח מסוף במיקום התיקיה TestProject, לחץ באמצעות לחצן העכבר הימני על TestProject ולאחר מכן בחר פתח במסוף משולב.
בשורת הפקודה של Terminal, הקלד ולאחר
dotnet runמכן הקש Enter.אתה אמור לראות את ההודעה הבאה:
First: A123 Second: B456 Third: C789
הקצאה מחדש של הערך של מערך
רכיבי המערך זהים לכל ערך משתנה אחר. באפשרותך להקצות, לאחזר ולהקצות מחדש ערך לכל רכיב במערך.
בסוף קובץ הקוד, כדי להקצות מחדש ולאחר מכן להדפיס את הערך של רכיב המערך הראשון, הזן את הקוד הבא:
fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");ודא שהקוד שלך תואם לדוגמה הבאה:
string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}"); fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");בתפריט קוד Visual Studio קובץ, בחר שמור.
בתצוגת EXPLORER, כדי לפתוח מסוף במיקום התיקיה TestProject, לחץ באמצעות לחצן העכבר הימני על TestProject ולאחר מכן בחר פתח במסוף משולב.
בשורת הפקודה של Terminal, הקלד ולאחר
dotnet runמכן הקש Enter.אתה אמור לראות את ההודעה הבאה:
First: A123 Second: B456 Third: C789 Reassign First: F000
אתחול מערך
באפשרותך לאתחל מערך במהלך הצהרה, בדיוק כפי שהיית עושה עם משתנה רגיל.
הוסף הערות לשורות שבהן אתה מצהיר על המשתנה
fraudulentOrderIDs.באפשרותך להשתמש בהערה מרובת שורות (
/* ... */)fraudulentOrderIDsכדי להוסיף הערות להצהרה על השורות המשמשות להקצאת ערכים לרכיבים במערך.כדי להצהיר על המערך ולאתחל ערכים במשפט יחיד, הזן את הקוד הבא:
string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ];דוגמה זו משתמשת בתחביר ביטוי אוסף , שהוצג ב-C# 12 ונתמך ב-.NET 10.
ייתכן שתראה גם תחביר ישן יותר המשמש לאתחול מערך.
string[] fraudulentOrderIDs = { "A123", "B456", "C789" };שים לב שתחביר ישן זה משתמש בסוגריים מסולסלים
{}כדי להקיף את הערכים של המערך. שני התחבירים חוקיים.הערה
ייתכן שתראה שילוב של התחביר הקודם ותחביר ביטוי אוסף המשמש בהדרכה זו.
ודא שהקוד שלך תואם לדוגמה הבאה:
/* string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; */ string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ]; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}"); fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}");קח דקה כדי לבחון את הצהרת ההצהרה.
שים לב שתחביר זה קומפקטי וקל לקריאה. בעת הפעלת היישום, לא אמור להיות שינוי בפלט.
בתפריט קוד Visual Studio קובץ, בחר שמור.
בתצוגת EXPLORER, כדי לפתוח מסוף במיקום התיקיה TestProject, לחץ באמצעות לחצן העכבר הימני על TestProject ולאחר מכן בחר פתח במסוף משולב.
בשורת הפקודה של Terminal, הקלד ולאחר
dotnet runמכן הקש Enter.אתה אמור לראות את אותה הודעה כמו קודם לכן:
First: A123 Second: B456 Third: C789 Reassign First: F000
שימוש במאפיין אורך של מערך
בהתאם לאופן שבו נוצר המערך, ייתכן שלא תדע מראש כמה רכיבים מכיל מערך. כדי לקבוע את הגודל של מערך, באפשרותך להשתמש במאפיין Length .
הערה
המאפיין Length של מערך אינו מבוסס על אפס.
בסוף קובץ הקוד, כדי לדווח על מספר ההזמנות שמקורן בהונאה, הזן את הקוד הבא:
Console.WriteLine($"There are {fraudulentOrderIDs.Length} fraudulent orders to process.");קוד זה משתמש במאפיין המערך
Length, מספר שלם, כדי להחזיר את מספר הרכיבים במערךfraudulentOrderIDsשלך.ודא שהקוד שלך תואם לדוגמה זו:
/* string[] fraudulentOrderIDs = new string[3]; fraudulentOrderIDs[0] = "A123"; fraudulentOrderIDs[1] = "B456"; fraudulentOrderIDs[2] = "C789"; // fraudulentOrderIDs[3] = "D000"; */ string[] fraudulentOrderIDs = [ "A123", "B456", "C789" ]; Console.WriteLine($"First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"Second: {fraudulentOrderIDs[1]}"); Console.WriteLine($"Third: {fraudulentOrderIDs[2]}"); fraudulentOrderIDs[0] = "F000"; Console.WriteLine($"Reassign First: {fraudulentOrderIDs[0]}"); Console.WriteLine($"There are {fraudulentOrderIDs.Length} fraudulent orders to process.");שמור את השינויים בקובץ Program.cs ולאחר מכן הפעל את היישום.
אתה אמור לראות את הפלט הבא:
First: A123 Second: B456 Third: C789 Reassign First: F000 There are 3 fraudulent orders to process.
תקציר
להלן הדברים החשובים ביותר שיש לזכור בעת עבודה עם מערכים:
- מערך הוא משתנה מיוחד הכולל אוסף של רכיבי נתונים קשורים.
- עליך לשנן את התבנית הבסיסית של הצהרה על משתני מערך.
- גש לכל רכיב במערך כדי להגדיר או לקבל את הערכים שלו באמצעות אינדקס מבוסס-אפס בתוך סוגריים מרובעים.
- אם אתה מנסה לגשת לאינדקס מחוץ לגבול המערך, תקבל חריגת זמן ריצה.
- המאפיין
Lengthמעניק לך דרך תיכנותית לקביעת מספר הרכיבים במערך.
בדוק את הידע שלך
משוב
האם עמוד זה היה מועיל?
לא
זקוק לעזרה בנושא זה?
רוצה לנסות להשתמש ב'שאל את Learn' כדי להבהיר או להדריך אותך בנושא זה?