首页 新闻 会员 周边 捐助

C# 中如何高效地在字符串中查找多个关键词

0
悬赏园豆:30 [已解决问题] 解决于 2025-08-07 14:05

比如下面的多个 Contains 操作,有没有更高效的实现方法?

if (body.Contains(".googlesyndication.com", StringComparison.OrdinalIgnoreCase) ||
    body.Contains(".doubleclick.com", StringComparison.OrdinalIgnoreCase) ||
    body.Contains(".doubleclick.net", StringComparison.OrdinalIgnoreCase))
{
    body = Sanitize(body);
}
dudu的主页 dudu | 高人七级 | 园豆:25263
提问于:2025-08-07 13:49
< >
分享
最佳答案
1

通过 dev.to 上的这篇文章 C# Search by multiple strings 知道了可以用 .NET 8 开始引入的 System.Buffers.SearchValues<T>

private static readonly SearchValues<string> _googleAdsenseDomains = SearchValues.Create(
    [".googlesyndication.com", ".doubleclick.com", ".doubleclick.net"],
    StringComparison.OrdinalIgnoreCase);
if (body.AsSpan().ContainsAny(_googleAdsenseDomains))
{
    body = Sanitize(body);
}
dudu | 高人七级 |园豆:25263 | 2025-08-07 14:04

SearchValues object become better with .NET 9 得知 .NET 8 中 SearchValues 只支持 char,.NET 9 才开始支持 string

dudu | 园豆:25263 (高人七级) | 2025-08-07 17:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册