using static System.Console;
using System;
using System.Globalization;
public class Program {
public static void Main() {
var mainStr = "José João";
WriteLine(mainStr.ContainsInsensitive("JOA"));
WriteLine(mainStr.ContainsInsensitive("jose"));
WriteLine(mainStr.ContainsInsensitive("josé"));
}
}
namespace System {
public static class StringExt {
public static bool ContainsInsensitive(this string source, string search) => (new CultureInfo("pt-BR").CompareInfo).IndexOf(source, search, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace) >= 0;
}
}
//https://pt.stackoverflow.com/q/179620/101
dXNpbmcgc3RhdGljIFN5c3RlbS5Db25zb2xlOwp1c2luZyBTeXN0ZW07CnVzaW5nIFN5c3RlbS5HbG9iYWxpemF0aW9uOwoJCQkJCQpwdWJsaWMgY2xhc3MgUHJvZ3JhbSB7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpIHsKCQl2YXIgbWFpblN0ciA9ICJKb3PDqSBKb8OjbyI7CgkJV3JpdGVMaW5lKG1haW5TdHIuQ29udGFpbnNJbnNlbnNpdGl2ZSgiSk9BIikpOwoJCVdyaXRlTGluZShtYWluU3RyLkNvbnRhaW5zSW5zZW5zaXRpdmUoImpvc2UiKSk7CgkJV3JpdGVMaW5lKG1haW5TdHIuQ29udGFpbnNJbnNlbnNpdGl2ZSgiam9zw6kiKSk7Cgl9Cn0KCm5hbWVzcGFjZSBTeXN0ZW0gewoJcHVibGljIHN0YXRpYyBjbGFzcyBTdHJpbmdFeHQgewoJCXB1YmxpYyBzdGF0aWMgYm9vbCBDb250YWluc0luc2Vuc2l0aXZlKHRoaXMgc3RyaW5nIHNvdXJjZSwgc3RyaW5nIHNlYXJjaCkgPT4gKG5ldyBDdWx0dXJlSW5mbygicHQtQlIiKS5Db21wYXJlSW5mbykuSW5kZXhPZihzb3VyY2UsIHNlYXJjaCwgQ29tcGFyZU9wdGlvbnMuSWdub3JlQ2FzZSB8IENvbXBhcmVPcHRpb25zLklnbm9yZU5vblNwYWNlKSA+PSAwOwoJfQp9CgovL2h0dHBzOi8vcHQuc3RhY2tvdmVyZmxvdy5jb20vcS8xNzk2MjAvMTAx