- Регистрация
- 18.02.2017
- Сообщения
- 270
- Благодарностей
- 53
- Баллы
- 28
Всем привет. Есть такой кусок с проекта. Мне его нужно завернуть в c# с использованием lock , так как работа будет с файлом.
Накидал код и у меня возникла проблема на этом экшене ( на скрине указал) . listAll.Contains(domain) - данный вариант ищет точное совпадение. И он не отрабатывает.
Мне нужно сравнивать значение из списка 1 в списке 2 , и если находится значение в списке 2 , мне нужно добавлять счетчик к строке(список 2)
Я ищу значение через listAll.Contains(domain), но данный вариант ищет точное совпадение. И если в списке 2 значение yandex.ru,0 , а я ищу yandex.ru , то он его не находит.
Приложил код и шаблон.
Накидал код и у меня возникла проблема на этом экшене ( на скрине указал) . listAll.Contains(domain) - данный вариант ищет точное совпадение. И он не отрабатывает.
Мне нужно сравнивать значение из списка 1 в списке 2 , и если находится значение в списке 2 , мне нужно добавлять счетчик к строке(список 2)
Я ищу значение через listAll.Contains(domain), но данный вариант ищет точное совпадение. И если в списке 2 значение yandex.ru,0 , а я ищу yandex.ru , то он его не находит.
Приложил код и шаблон.
C#:
string text = project.ExecuteMacro(project.Variables["get"].Value);
var errorIfEmpty = false;
var regexGroups = Macros.TextProcessing.Regex(text, @"(?<=http(|s)://)[\w\W]*?(?=/)");
if (regexGroups.Count == 0)
{
if (errorIfEmpty) throw new Exception();
}
else
{
//добаляем в список все совпадения и удаляем дубли
project.Lists["domain"].AddRange(regexGroups.Select(g => g.FirstOrDefault()));
var temp_lst = project.Lists["domain"].Distinct().ToList();
project.Lists["domain"].Clear();
project.Lists["domain"].AddRange(temp_lst);
}
while (project.Lists["domain"].Count() != 0)
{
var listAll = project.Lists["domain_all"];
string domain = project.Lists["domain"][0].Trim(); // получаем строку
project.Lists["domain"].RemoveAt(0); // удаляем строку из списка
text = project.ExecuteMacro(domain);
domain = Macros.TextProcessing.Replace(text, "www.", "", "Text", "All"); //удаляем www
//тут нужно проверить есть ли значение в списке domain_all (listAll)
//если значение не наъодим , то добавляем значение domain в список domains_all в таком виде (domain,0)
//если находим , то добавляем счетчик к значению в списке domain_all в таком видео (domain,1)
//т.е каждое совпадение добавляет +1 к счетчику
if(listAll.Contains(domain))
{
//тут код с добавлением счетчика в список
}
else
{
listAll.Add(domain + ",0");
}
Вложения
-
37,8 КБ Просмотры: 65
-
15,4 КБ Просмотры: 59