możliwe napisać rozszerzenie ciągu jak
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;
}
}
Używaj go jak
var r = "1234567890".Mismatch("1234567880");
to nie jest zoptymalizowany algorytm dla znalezienia niedopasowania.
Jeśli jesteś zainteresowany tylko znaleźć pierwszy niedopasowanie,
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;
}
toczy własną rękę nie możliwe jako (być może) metoda rozszerzenia? – glosrob
+1 do sprawdzania, czy to już istnieje w standardowej bibliotece. –
Całkowicie. Nic gorszego, że duma z polerowania naprawdę dobrego wdrożenia spada, gdy zdajesz sobie sprawę, że jest w ramach od 1.1! –