如何使用大小写不敏感的.Contains方法来制作包含.Any的组合。

25 浏览
0 Comments

如何使用大小写不敏感的.Contains方法来制作包含.Any的组合。

这个问题已经有了答案

LINQ Contains Case Insensitive

我有以下代码:

query = query.Where(x => words.Any(x.Message.Contains));

words是一个string[]x.Message是一个string

我想根据数组中的所有单词过滤我的查询,但我不想进行大小写敏感比较,因此,如果我输入\'bob\'或\'BOb\',它不应该关心,仍然将这些单词与消息进行比较,如果消息是\'BOB is awesome\'或\'bob is awesome\'。

admin 更改状态以发布 2023年5月24日
0
0 Comments

这将按需将字符串列表与消息进行比较。 我使用 .ToLower()将字符串和列表中的每个单词转换为不分大小写。

query = query.Where(x => words.Any(s => x.Message.ToLower().Contains(s.ToLower())));

检查字符串是否包含列表(字符串列表)中的元素:检查字符串是否包含来自列表(字符串列表)中的元素

0
0 Comments

更好的选择是使用包含字符串比较参数的Contains重载函数:\n

query = query.Where(x => words.Any(s => x.Message
    .Contains(s, StringComparison.InvariantCultureIgnoreCase)));

0