ใน C # ถ้าฉันต้องการแยก a string
อีกอันstring
ฉันต้องทำสิ่งนั้น:
testString.Split(new string[] { "anotherString" }, StringSplitOptions.None);
จากString.Split
เอกสาร MSDN ที่มีการโอเวอร์โหลดเราสามารถเห็นการใช้งานและสาเหตุที่ต้องทำการโทร
มาจากPythonมันยากสำหรับฉันที่จะเข้าใจอย่างถูกต้องว่าทำไมจึงต้องมีการโทร ฉันหมายความว่าฉันสามารถใช้Regex.Split
เพื่อให้ได้ไวยากรณ์ที่คล้ายกันมากกว่าการดำเนินการของงูใหญ่ แต่ผมจะต้องทำมันที่ค่าใช้จ่ายของประสิทธิภาพการทำงานน้อยกว่า (เวลาการติดตั้ง) สำหรับอะไรที่เรียบง่าย
โดยพื้นฐานแล้วคำถามของฉันคือทำไมเราทำไม่ได้:
testString.Split("anotherString");
โปรดทราบว่าฉันไม่ได้แนะนำต้นแบบหรือการนำไปใช้ใด ๆ ฉันเข้าใจว่าทำไมคุณไม่สามารถใช้เวอร์ชันด้านบนเนื่องจาก API ปัจจุบัน เป้าหมายของฉันคือเข้าใจว่าทำไม API ดังกล่าวจึงถูกสร้างขึ้นโดยคำนึงถึงประโยชน์ที่ไวยากรณ์ข้างต้นนำมา ณ ตอนนี้ความยืดหยุ่นดูเหมือนจะเป็นเป้าหมายของกระแสString.Split
ที่เข้าท่า แต่ตามจริงแล้วฉันคิดว่าจริงๆแล้วมีการแสดงบางอย่างที่ได้รับบ้าง ฉันเดาว่าฉันผิด
testString.Split(",.;");
และtestString.Split(new Char [] {',', '.', ';',);
มันไม่เหมือนกัน
IEnumerable<char>
ดังนั้นต้นแบบเพิ่มเติมที่คุณแนะนำอาจปรากฏชัดเจนในบางกรณี (คุณคั่นด้วยสตริงทั้งหมดหรือกำหนดขอบเขตโดยอักขระแต่ละตัว?) เพียงเดา
testString.Split("anotherString");
นี้ฉันค่อนข้างมั่นใจที่จะพูดว่าพฤติกรรมที่คาดหวังคือการกำหนดขอบเขตทั้งหมด ( anotherString
ในกรณีนี้)