C # строка. Содержит переменную - PullRequest
0 голосов
/ 03 августа 2010
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 ]

2 голосов
/ 03 августа 2010

У вас есть коллекция ключевых слов, и вы хотите увидеть, содержатся ли какие-либо из них (или все они?) В заданной строке.Я не понимаю, как бы вы решили это, не используя где-нибудь цикл, явный или скрытый в некоторой функции или выражении linq.

2 голосов
/ 03 августа 2010

Использование LINQ:

if (keywords.Any(k => pslower.Contains(k)))
0 голосов
/ 03 августа 2010

Другое решение - создайте строку [] из ключевых слов, а затем string[] parts = pslower.Split(yourStringArray, StringSplitOptions.None); - если появится какая-либо из ваших строк, то parts.Length> 1. Вы не легко заполучите ключевые слова таким образом, хотя '.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...