Nó có thể để viết tiện ích chuỗi như
public static class MyExtensions
{
public static IList<char> Mismatch(this string str1, string str2)
{
var char1 = str1.ToCharArray();
var char2 = str2.ToCharArray();
IList<Char> Resultchar= new List<char>();
for (int i = 0; i < char2.Length;i++)
{
if (i >= char1.Length || char1[i] != char2[i])
Resultchar.Add(char2[i]);
}
return Resultchar;
}
}
Sử dụng nó như
var r = "1234567890".Mismatch("1234567880");
Nó không phải là một thuật toán tối ưu hóa cho việc tìm kiếm phù hợp.
Nếu bạn chỉ quan tâm để tìm ra những không phù hợp đầu tiên,
public static Char FirstMismatch(this string str1, string str2)
{
var char1 = str1.ToCharArray();
var char2 = str2.ToCharArray();
for (int i = 0; i < char2.Length;i++)
{
if (i >= char1.Length || char1[i] != char2[i])
return char2[i];
}
return ''c;
}
là cán của riêng bạn không có thể là (có lẽ) một phương pháp mở rộng? – glosrob
+1 để kiểm tra xem điều này đã tồn tại trong thư viện chuẩn trước chưa. –
Hoàn toàn. Không có gì tệ hơn là niềm kiêu hãnh trong việc đánh bóng một sự thực thi thực sự tốt khi bạn nhận ra nó nằm trong khuôn khổ kể từ 1.1! –