簡體   English   中英

如何檢查字符串是否包含列表/數組中的任何字符串

[英]How to check if String contains any of the strings in List/Array

我目前有一個ASP.Net網站。 該網站從不同來源檢索RSS-Feed,並輸出自己的RSS-Feed 但是文章是否包含某些詞,必須將其“塗黑”(您可能會說審查制度)。 這些單詞包含在該ASP.Net網站管理的blacklist

我當前的解決方案:

foreach (SyndicationItem rssItem in syndFeed.Items.OrderByDescending(x => x.PublishDate).ToList())
{
    //if is on blacklist
    bool isValid = true;
    foreach (String blacklistItem in MyBlacklist)
    {
        if(rssItem.Title.Text.contains(blacklistItem))
            isValid = false;
        if(rssItem.Summary.Text.contains(blacklistItem))
            isValid = false;
    }

    if (isValid)
    {
        writer.WriteStartElement("item");

        //Write Elements
        writer.WriteElementString("PubDate", rssItem.PublishDate.ToString("yyyy-MM-dd HH:mm:ss"));
        writer.WriteElementString("title", rssItem.Title.Text);
        writer.WriteElementString("description", rssItem.Summary.Text);
        writer.WriteElementString("link", rssItem.Id.ToString());

        writer.WriteEndElement();
    }
}

問題:是否有更高性能的搜索方法? 如何使用LINQ /其他任何Stringoperations更簡單地編寫以下代碼?

    foreach (String blacklistItem in MyBlacklist)
    {
        if(rssItem.Title.Text.contains(blacklistItem))
            isValid = false;
        if(rssItem.Summary.Text.contains(blacklistItem))
            isValid = false;
    }

基於Java的以下示例:

檢查字符串是否包含數組中的任何字符串

如何在Java中使用字符串數組檢查字符串?

測試字符串是否包含數組中的任何字符串

bool isValid = !myBlackList.Any(s=> rssItem.Title.Text.contains(s) || rssItem.Summary.Text.Contains(s))

要么

bool isValid = myBlackList.All(s=> !rssItem.Title.Text.Contains(s) && !rssItem.Summary.Text.Contains(s))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM