Có cách nào tốt hơn để làm điều này ...Replace Multiple Elements String trong C#
MyString.Trim().Replace("&", "and").Replace(",", "").Replace(" ", " ")
.Replace(" ", "-").Replace("'", "").Replace("/", "").ToLower();
Tôi đã kéo dài chuỗi lớp để giữ nó xuống một công việc nhưng có cách nào nhanh hơn?
public static class StringExtension
{
public static string clean(this string s)
{
return s.Replace("&", "and").Replace(",", "").Replace(" ", " ")
.Replace(" ", "-").Replace("'", "").Replace(".", "")
.Replace("eacute;", "é").ToLower();
}
}
Just for fun (và để ngăn chặn các đối số trong các ý kiến) Tôi đã xô đẩy một ý chính lên điểm chuẩn các ví dụ khác nhau dưới đây.
Điểm lựa chọn regex khủng khiếp; tùy chọn từ điển xuất hiện nhanh nhất; phiên bản kéo dài của trình tạo chuỗi thay thế nhanh hơn một chút so với tay ngắn.
Dựa trên những gì bạn có trong tiêu chuẩn của bạn có vẻ như phiên bản từ điển không phải là làm tất cả những thay thế mà tôi nghi ngờ là những gì làm cho nó nhanh hơn các giải pháp StringBuilder. – toad
@toad Xin chào từ năm 2009; Tôi đã thêm một bình luận dưới đây vào tháng Tư về sai lầm rõ ràng đó. Các gist được cập nhật mặc dù tôi bỏ qua D. Phiên bản từ điển vẫn còn nhanh hơn. –
Có thể trùng lặp của [Thay thế cho String.Đặt lại nhiều lần?] (Http://stackoverflow.com/questions/12007358/alternative-to-string-replace-multiple-times) –