string[] pullspec = File.ReadAllLines(@"C:\fixedlist.txt");
foreach (string ps in pullspec)
{
string pslower = ps.ToLower();
string[] pslowersplit = pslower.Split('|');
var keywords = File.ReadAllLines(@"C:\crawl\keywords.txt");
if (pslower.Contains("|"))
{
if (pslower.Contains(keywords))
{
File.AppendAllText(@"C:\" + keyword + ".txt", pslowersplit[1] + "|" + pslowersplit[0] + "\n");
}
}
}
由于pslower.Contains(keywords)
,这不能编译,但我不是要尝试100个foreach循环。
有人有任何建议吗?
答案 0 :(得分:2)
使用LINQ:
if (keywords.Any(k => pslower.Contains(k)))
答案 1 :(得分:2)
您有一组关键字,并且您想查看它们中的任何一个(或所有这些?)是否包含在给定的字符串中。我没有看到如何在不使用某个循环的情况下解决这个问题,无论是显式的还是隐藏在某个函数或linq表达式中。
答案 2 :(得分:0)
另一个解决方案 - 创建关键字的String [],然后string[] parts = pslower.Split(yourStringArray, StringSplitOptions.None);
- 如果您的任何字符串出现,那么parts.Length>你不会轻易地按照这种方式开始使用关键词。“