Tôi muốn viết một phương thức mở rộng cho lớp .NET String. Tôi muốn nó là một biến thể đặc biệt trên phương thức Split - một biến mất một ký tự thoát để ngăn chặn tách chuỗi khi một ký tự thoát được sử dụng trước dấu phân cách.Phương pháp mở rộng C# - Phân tách chuỗi cũng chấp nhận ký tự thoát
Cách tốt nhất để viết nội dung này là gì? Tôi tò mò về cách thức không phải là regex tốt nhất để tiếp cận nó.
Something với một chữ ký như ...
public static string[] Split(this string input, string separator, char escapeCharacter)
{
// ...
}
UPDATE: Bởi vì nó đã đưa ra trong một trong những ý kiến, thoát ...
Trong C# khi thoát không ký tự đặc biệt bạn sẽ có được lỗi - CS1009: Chuỗi thoát không được nhận dạng.
Trong IE JScript, các ký tự thoát được loại bỏ. Trừ khi bạn thử \ u và sau đó bạn nhận được lỗi "Số thập lục phân dự kiến". Tôi đã thử nghiệm Firefox và nó có hành vi tương tự.
Tôi muốn phương pháp này được khá khoan dung và tuân theo mô hình JavaScript. Nếu bạn trốn thoát trên một phi phân cách nó chỉ nên "vui lòng" loại bỏ các ký tự thoát.
Dường như bạn đang giả định rằng bất cứ khi nào ký tự thoát xuất hiện, nó được theo sau bởi chuỗi dấu phân cách. Điều gì sẽ xảy ra nếu nó không? – tvanfosson
Tôi chỉ đang nói về những gì trong câu hỏi - nếu ký tự thoát xuất hiện trước dấu phân cách, nó sẽ ngăn chặn dấu phân cách đó được sử dụng để tách. Tôi không cố gắng loại bỏ nhân vật trốn thoát hoặc xử lý nó theo bất kỳ cách nào khác. Naive, có lẽ, nhưng đó là tất cả thông tin chúng tôi có. –
cool, lợi ích của ienumberable khi trả về một mảng chuỗi là gì? – rizzle