C#string.Contains使用变量

时间:2010-08-02 23:23:33

标签: c# string variables

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循环。

有人有任何建议吗?

3 个答案:

答案 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>你不会轻易地按照这种方式开始使用关键词。“