using System.Globalization;
public static void Main()
Console.WriteLine(CheckNames("Ayhan XYZ", "Bayramin Okutucu Arslan", "Ayhan", "Okutucu Bayramin XYZ"));
private static bool CheckNames(string enteredFirstName, string enteredLastName, string kpsFirstName, string kpsLastName)
var clearEnteredFirstName = ConvertTextToEnglish(enteredFirstName.ToLower());
var clearEnteredLastName = ConvertTextToEnglish(enteredLastName.ToLower());
var enteredFirstNameArray = clearEnteredFirstName.Split(' ');
var enteredLastNameArray = clearEnteredLastName.Split(' ');
var clearKpsFirstName = ConvertTextToEnglish(kpsFirstName.ToLower());
var clearKpsLastName = ConvertTextToEnglish(kpsLastName.ToLower());
var kpsFirstNameArray = clearKpsFirstName.Split(' ');
var kpsLastNameArray = clearKpsLastName.Split(' ');
return kpsFirstNameArray.All(enteredFirstNameArray.Contains) && kpsLastNameArray.All(enteredLastNameArray.Contains);
private static string ConvertTextToEnglish(string text)
var result = string.Join("", text.Normalize(NormalizationForm.FormD)
.Where(c => char.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark));
return result.Replace("�", "i");