סקירת פתרון לשילוב ערכי מערך מחרוזות כמחרוזת ואתגר מספרים שלמים
הקוד הבא הוא פתרון אפשרי אחד לאתגר ביחידה הקודמת.
הערה
דוגמאות הקוד בתרגיל זה נועדו בהתבסס על en-US התרבות, ולהשתמש בנקודה (.) כתו המפריד העשרוני. בנייה והפעלה של הקוד באמצעות הגדרת תרבות המשתמשת במפרידים עשרוניים שונים (כגון פסיק ,) עשויות לגרום לתוצאות או לשגיאות בלתי צפויות. כדי לפתור בעיה זו, החלף את המפרידים העשרוניים של הנקודה במדגמאות הקוד במפריד העשרוני המקומי (כגון ,).
לחלופין, כדי להפעיל תוכנית באמצעות הגדרת התרבות en-US, הוסף את הקוד הבא לחלק העליון של התוכנית: using System.Globalization; ולאחר כל משפט using אחר, הוסף CultureInfo.CurrentCulture = new CultureInfo("en-US");.
string[] values = { "12.3", "45", "ABC", "11", "DEF" };
decimal total = 0m;
string message = "";
foreach (var value in values)
{
decimal number; // stores the TryParse "out" value
if (decimal.TryParse(value, out number))
{
total += number;
} else
{
message += value;
}
}
Console.WriteLine($"Message: {message}");
Console.WriteLine($"Total: {total}");
קוד זה הוא רק "פתרון אפשרי אחד" מכיוון שקיימות ככל להניח כמה דרכים לפתרון אתגר זה. הפתרון המוצע מסתמך על TryParse(), אך ייתכן שיש לך גישה אחרת שעובדת בצורה שווה. ודא שהתוצאה תואמת לפלט הבא:
Message: ABCDEF
Total: 68.3
אם היית מצליח, מזל טוב!
חשוב
אם אתה נתקל בבעיות בהשלמת אתגר זה, ייתכן שעליך לסקור את היחידות הקודמות לפני שתמשיך.