2
我目前有一个ASP.Net网站。该网站从不同来源检索RSS源,并输出其自己的RSS-Feed
。但是这篇文章包含了一些他们必须被“黑掉”的词(正如你可能会说的那样)。这些词包含在该ASP.Net网站管理的blacklist
中。如何检查字符串是否包含List/Array中的任何字符串
我目前的解决方案:
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更简单地编写下面的代码?基于从Java下面的例子
foreach (String blacklistItem in MyBlacklist)
{
if(rssItem.Title.Text.contains(blacklistItem))
isValid = false;
if(rssItem.Summary.Text.contains(blacklistItem))
isValid = false;
}
:
Checking if a string contains any of the strings in an array
How to check string with array of strings in java?
Test if a string contains any of the strings from an array
天啊!我怎么会错过这个?你的解决方案就像一个魅力!谢谢您的帮助! – User999999