One difference between form C and form D is how letters with accents are represented: form C uses a single letter-with-accent codepoint, while form D separates that into a letter and an accent.
A side-effect is that this makes it possible to easily create a "remove accents" method.
public static string RemoveAccents(string input)
{
return new string(
input
.Normalize(System.Text.NormalizationForm.FormD)
.ToCharArray()
.Where(c => CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark)
.ToArray());
// the normalization to FormD splits accented letters in accents+letters
// the rest removes those accents (and other non-spacing characters)
}