Угрюмые лямбды

TwistDanceR

Активный пользователь
Регистрация
30.05.2019
Сообщения
479
Благодарностей
200
Баллы
43
C#:
var list = project.Lists["pro"]; //объява
list.Clear(); //чистка
var file = File.ReadAllText(project.Directory+@"\\"+"ips-zone2.txt"); //файл для переработки
var regex = @"zproxy.*"; // регулярка для переработки
list.AddRange(Regex.Matches(file,regex).Cast<Match>().Select(m=>m.Value).).; //- выдает мне офигительно красивый список строк формата "a:b:c:d"
//list.ToList().ForEach(m=>m.Replace("A:B:",""));
Теперь я хочу каждый элемент списка обработать, чтобы стало "c:d:a:b"

Пытаюсь использовать лямбда выражения (это самая старая статья из тех, с которыми я уже пару недель не могу разобраться) по логике:
1) для каждого элемента коллекции применить Regex Замена "a:b:" на "";
2) прикрепить к каждому элементу хвост ":a:b" (удалить крайнее правое двоеточие, тоже регуляркой....)

Подскажите пожалуйста, как это сделать. Слишком много времени уже убил. Я бы через экшны уже давно справился, но хочу знать как это бахнуть на C#.
Спасибо, жду ответы.

P.S.
Читаю изо дня в день, пробую, кусаю - не раскалывается.
 

Metrix

Client
Регистрация
03.01.2014
Сообщения
343
Благодарностей
271
Баллы
63
  • Спасибо
Реакции: TwistDanceR

TwistDanceR

Активный пользователь
Регистрация
30.05.2019
Сообщения
479
Благодарностей
200
Баллы
43
Так надо с основ начинать, Шилдт, Троелсен, а так перешагивать сразу в лямбды - это слишком.
Может ты и прав, но если я юзаю одну часть кода с лямбдой (хотя бы на 50% понимая логику) - мне хотелось бы увидеть и вторую в действии, работающую.

За литературу отдельное спасибо.
 

TwistDanceR

Активный пользователь
Регистрация
30.05.2019
Сообщения
479
Благодарностей
200
Баллы
43
Либо меня правда игнорят во всех темах, либо вопрос был слишком прост, чтобы на него отвечать. Решение сам довел (чё ж вчера не сделал-то?)... лямбды под C# тут не нужны, и так работает моментально. Может кому понадобится...
Значения, которые были записаны в лист могут быть заменены простым циклом с присвоением переменной нового значения. (Спасибо КЭП).
Вот решение для такой задачи. Выполняется в секунду.

C#:
for(int i=0; i<list.Count; i++) //Модификация каждого стринга тупым циклом
{
    list[i] = list[i].Replace("a:b:",""); //убираем a:b: из начала
    list[i] = list[i]+"@a:b"; //добавляем в конец строки текст"@:a:b"
}
P.S. Когда дочитаю книжки - тогда вернусь к лямбдам. Сложновато с уровня 10 часов в неделю понимать до конца где объекты, что есть методы и функции, как к ним обращаться, чтобы они правильно компилировались... Но знания уровня колледжа мне помогают :D
 
  • Спасибо
Реакции: kagorec

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