ตรวจทานโซลูชันสําหรับการรวมค่าอาร์เรย์ของสตริงเป็นสตริงและเป็นการทดสอบจํานวนเต็ม
โค้ดต่อไปนี้เป็นหนึ่งในวิธีแก้ไขปัญหาที่เป็นไปได้สําหรับการทดสอบจากหน่วยก่อนหน้า
โน้ต
ตัวอย่างโค้ดในแบบฝึกหัดนี้ถูกออกแบบมาตามการตั้งค่าวัฒนธรรม 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
ถ้าคุณประสบความสําเร็จ ขอแสดงความยินดี!
สําคัญ
หากคุณประสบปัญหาในการดําเนินการการทดสอบนี้ให้เสร็จสมบูรณ์ บางทีคุณควรตรวจสอบหน่วยก่อนหน้านี้ก่อนที่คุณจะดําเนินการต่อ