положить данные с писок

Master Woo

Client
Регистрация
06.12.2014
Сообщения
122
Благодарностей
129
Баллы
43
добрый день, форумчане
подскажите как посредством c# создать список и положить в него спарсенные регуляркой значения?

Код:
foreach (Match match in Regex.Matches(text, @"\b(?:\d{1,3}\.){3}\d{1,3}\b"))

    project.SendInfoToLog(match.Value, true);
вывести в лог получается, отрабатывает отлично, а вот со списками затык, перечитал много документации, но так и не разобрался
и как сохранить список из c# в список проекта?
буду благодарен всем кто поможет
 
Последнее редактирование:

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
823
Баллы
93
подскажите как посредством c# создать список и положить в него спарсенные регуляркой значения?
Код:
var regexList = new List<string>();

foreach (Match match in Regex.Matches(text, @"\b(?:\d{1,3}\.){3}\d{1,3}\b"))
{
    project.SendInfoToLog(match.Value, true);
    regexList.Add(match.Value);
}

и как сохранить список из c# в список проекта?
Код:
var regexList = new List<string>();
var list = project.Lists["название списка"]; // список в PM

foreach (Match match in Regex.Matches(text, @"\b(?:\d{1,3}\.){3}\d{1,3}\b"))
{
    project.SendInfoToLog(match.Value, true);
    regexList.Add(match.Value);
}

list.AddRange(regexList);


Вообще можно без промежуточного списка обойтись.

Код:
var list = project.Lists["название списка"]; // список в PM

foreach (Match match in Regex.Matches(text, @"\b(?:\d{1,3}\.){3}\d{1,3}\b"))
{
    project.SendInfoToLog(match.Value, true);
    list.Add(match.Value);
}
 
  • Спасибо
Реакции: orka13 и Master Woo

Master Woo

Client
Регистрация
06.12.2014
Сообщения
122
Благодарностей
129
Баллы
43
Код:
var regexList = new List<string>();

foreach (Match match in Regex.Matches(text, @"\b(?:\d{1,3}\.){3}\d{1,3}\b"))
{
    project.SendInfoToLog(match.Value, true);
    regexList.Add(match.Value);
}



Код:
var regexList = new List<string>();
var list = project.Lists["название списка"]; // список в PM

foreach (Match match in Regex.Matches(text, @"\b(?:\d{1,3}\.){3}\d{1,3}\b"))
{
    project.SendInfoToLog(match.Value, true);
    regexList.Add(match.Value);
}

list.AddRange(regexList);


Вообще можно без промежуточного списка обойтись.

Код:
var list = project.Lists["название списка"]; // список в PM

foreach (Match match in Regex.Matches(text, @"\b(?:\d{1,3}\.){3}\d{1,3}\b"))
{
    project.SendInfoToLog(match.Value, true);
    list.Add(match.Value);
}
спасибо, уже разобрался, сделал более громоздко

Код:
int i=0;
foreach (Match match in Regex.Matches(text, @"\b(?:\d{1,3}\.){3}\d{1,3}\b"))
{
    i = i++;
   
    var list = new List<string>();
    list.Add(match.Value);
   
    project.Lists["ip"].Add(list[i]);
   
    project.SendInfoToLog(list[i], true);
}
так что воспользуюсь вашим вариантом.
 

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
823
Баллы
93
Код:
int i=0;
foreach (Match match in Regex.Matches(text, @"\b(?:\d{1,3}\.){3}\d{1,3}\b"))
{
    i = i++;

    var list = new List<string>();
    list.Add(match.Value);

    project.Lists["ip"].Add(list[i]);

    project.SendInfoToLog(list[i], true);
}
Замечания по коду.

Используется цикл foreach, нет смысла создавать отдельно счетчик и с ним что то делать.
Счетчик используется в цикле for.

Дальше.
Вы создаете новый список var list = new List<string>(); в каждой итерации цикла.
добавляете в него один элемент list.Add(match.Value);
И тут же вытаскиваете из него элемент по индексу list[i}
И добавляете в список PM project.Lists["ip"].Add(list)
Это все лишние действия, которые не добавят скорости.

Плюс этот код будет не так работать как задумывалось.
Счетчик постоянно увеличивается. А в новый список добавляется только один элемент, который можно взять по list[0]. Будет ошибка - выход за границы массива.
 
Последнее редактирование:
  • Спасибо
Реакции: impul5e и orka13

Master Woo

Client
Регистрация
06.12.2014
Сообщения
122
Благодарностей
129
Баллы
43
Код:
int i=0;
foreach (Match match in Regex.Matches(text, @"\b(?:\d{1,3}\.){3}\d{1,3}\b"))
{
    i = i++;

    var list = new List<string>();
    list.Add(match.Value);

    project.Lists["ip"].Add(list[i]);

    project.SendInfoToLog(list[i], true);
}
Замечания по коду.

Используется цикл foreach, нет смысла создавать отдельно счетчик и с ним что то делать.
Счетчик используется в цикле for.

Дальше.
Вы создаете новый список var list = new List<string>(); в каждой итерации цикла.
добавляете в него один элемент list.Add(match.Value);
И тут же вытаскиваете из него элемент по индексу list
И добавляете список PM project.Lists["ip"].Add(list)
Это все лишние действия, которые не добавят скорости.

Плюс этот код будет не так работать как задумывалось.
Счетчик постоянно увеличивается. А в новый список добавляется только один элемент, который можно взять по list[0]. Будет ошибка - выход за границы массива.
понятно, спасибо за замечания
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)