我需要比较网站上搜索机制的字符串。我使用 C#。我尝试了两种方法:
consultants.Where(x =>
x.Description.ToLower().Contains(vm.Description.ToLower()));
and
consultants.Where(x =>
Regex.IsMatch(x.Description, vm.Description, RegexOptions.IgnoreCase));
两者都适用于所有英文字符。因此,如果我搜索“english”,那没问题。但一旦我尝试搜索包含非英语字符的字符串,它就不起作用。例如,如果我尝试搜索单词“språk”(瑞典语中的“语言”),它不会返回任何内容。
为什么会这样,我该如何解决?
为了正确比较非英语字符,您应该为此使用适当的文化规则。例如。您可以创建自己的不区分大小写的StringComparer瑞典语并用它Contains
method:
var swedishComparer = StringComparer.Create(new CultureInfo("sv-Se"), true);
consultants = consultants
.Where(x =>
x.Description.Contains(vm.Description, swedishComparer)
).ToList();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)