ฉันจะดำเนินการ "เริ่มต้นด้วย" ที่คำนึงถึงวัฒนธรรมจากตรงกลางของสตริงได้อย่างไร
ฉันมีข้อกำหนดที่ค่อนข้างคลุมเครือ แต่รู้สึกว่าควรเป็นไปได้โดยใช้ BCL สำหรับบริบทผมแยกสตริงวันที่ / เวลาในNoda เวลา ฉันรักษาเคอร์เซอร์แบบลอจิคัลสำหรับตำแหน่งของฉันภายในสตริงอินพุต ดังนั้นในขณะที่สตริงที่สมบูรณ์อาจเป็น "3 มกราคม 2013" เคอร์เซอร์แบบลอจิคัลอาจอยู่ที่ "J" ตอนนี้ฉันต้องแยกวิเคราะห์ชื่อเดือนโดยเปรียบเทียบกับชื่อเดือนที่รู้จักทั้งหมดสำหรับวัฒนธรรม: วัฒนธรรมที่อ่อนไหว ตัวพิมพ์เล็กและใหญ่ จากจุดของเคอร์เซอร์ (ไม่ใช่ในภายหลังฉันต้องการดูว่าเคอร์เซอร์กำลัง "ดู" ชื่อเดือนของผู้สมัครหรือไม่) อย่างรวดเร็ว ... และฉันต้องรู้ว่าหลังจากนั้นใช้อักขระกี่ตัว รหัสปัจจุบันCompareInfo.Compareการทำเช่นนี้โดยทั่วไปจะทำงานโดยใช้ มันเป็นแบบนี้อย่างมีประสิทธิภาพ (สำหรับส่วนที่ตรงกัน - มีโค้ดมากกว่าของจริง แต่ไม่เกี่ยวข้องกับการจับคู่): internal bool MatchCaseInsensitive(string candidate, CompareInfo compareInfo) { return compareInfo.Compare(text, position, candidate.Length, candidate, 0, candidate.Length, CompareOptions.IgnoreCase) == 0; } อย่างไรก็ตามขึ้นอยู่กับผู้สมัครและภูมิภาคที่เราเปรียบเทียบว่ามีความยาวเท่ากัน ดีเกือบตลอดเวลา …