将字符串与非英文字符进行比较?

2023-12-09

我需要比较网站上搜索机制的字符串。我使用 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(使用前将#替换为@)

将字符串与非英文字符进行比较? 的相关文章

随机推荐