Помогите пожалуйста, с помощью c#нужно взять переменную (слово) и подсчитать в скольких строках в одном списке (лист) содержится эта переменная и записать это количество строк в новую переменную (число).
//подготавливаем регулярное выражение
var word_for_find = project.Variables["Переменная в которой слово для поиска"].Value;
var regex_for_find = new System.Text.RegularExpressions.Regex(word_for_find);
//объявляем переменную для записи количества строк с совпадением
int count_find_word=0;
//объявляем переменную списка
var my_list = project.Lists["Ваш список"];
//перебираем в цикле все строки и подсчитываем количество строк со словом
for(int i=0; i < my_list.Count; i++)
{
var stroka_spiska = my_list[i];
if (regex_for_find.IsMatch(stroka_spiska))
{
count_find_word++;
}
}
return count_find_word;
Спасибо, заработало. Единственное но, когда я попробовал использовать это для подсчета доменов, то при запросе не учитывает " . "(точку). Например запускаю подсчет доменов введя переменной такое значение ".ga/". В итоге ищет по переменной "ga/"
Спасибо, заработало. Единственное но, когда я попробовал использовать это для подсчета доменов, то при запросе не учитывает " . "(точку). Например запускаю подсчет доменов введя переменной такое значение ".ga/". В итоге ищет по переменной "ga/"
var slovo = project.Variables["Переменная в которой слово для поиска"].Value;
var list = project.Lists["Ваш список"];
int count=0;
foreach(var stroka_spiska in list)
{
if (stroka_spiska.Contains(slovo))
count++;
}
return count;
var slovo = project.Variables["Переменная в которой слово для поиска"].Value;
var list = project.Lists["Ваш список"];
int count=0;
foreach(var stroka_spiska in list)
{
if (stroka_spiska.Contains(slovo))
count++;
}
return count;
var slovo = project.Variables["Переменная в которой слово для поиска"].Value;
var list = project.Lists["Ваш список"];
int count=0;
foreach(var stroka_spiska in list)
{
if (stroka_spiska.Contains(slovo))
count++;
}
return count;
Если нужно точно так же, а значит не количество повторяющихся слов в тексте, а именного количество строк в которых встречается слово, то так:
C#:
var searchWord = project.Variables["SEARCH_WORD"].Value;
var pathFile = @"C:\Users\ILYA\Desktop\test.txt";
var text = new List<string>(File.ReadAllLines(pathFile).Where(x => !string.IsNullOrWhiteSpace(x)));
var _counter = 0;
if (!string.IsNullOrWhiteSpace(searchWord) && text.Count != 0) text.ForEach(x => {if (x.Contains(searchWord)) _counter++;});
return _counter;
На всякий случай, вот подсчет заданных слов в файле (надеюсь, регулярку верно составил):
C#:
var searchWord = project.Variables["SEARCH_WORD"].Value;
var pathFile = @"C:\Users\ILYA\Desktop\test.txt";
var text = new List<string>(Regex.Matches(File.ReadAllText(pathFile), @"\b[a-zA-Z0-9а-яА-Я]{2,}\b").Cast<Match>().Select(x => x.Value));
var _counter = 0;
if (!string.IsNullOrWhiteSpace(searchWord) && text.Count != 0) text.ForEach(x => {if (x.Contains(searchWord)) _counter++;});
return _counter;