Сравнение двух списков по частичному совпадению

Gizmond

Client
Регистрация
18.02.2017
Сообщения
264
Благодарностей
51
Баллы
28
Всем привет. Как в список good добавить строки которые содержатся в списке mix , но при этом нужно проверять чтобы строки из mix не содержали строки из bad списка. Ну т.е по факту чтобы в список good добавилась только строка privet4:privet. Код ниже добавляет все строки из списка mix, он ищет их по явному совпадению, как сделать чтобы искал по частичному совпадению , что то типо contains() ?

в списке mix строки:

privet1:privet
privet2:privet
privet3:privet
privet4:privet

в списке bad строки:

privet1:privet:34645646
privet2:privet:364765867765
privet3:privet:253645788765344356


C#:
List<string> bad = project.Lists["account_sended"].ToList();
List<string> mix = project.Lists["account_sending"].ToList();
var good = project.Lists["account_for_send"];

List<string> temp= new List<string>();
temp= mix.Except(bad).ToList();

foreach(string data in temp)
{
    good.Add(data);
}
 
Последнее редактирование:

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 130
Благодарностей
487
Баллы
83
C#:
var mix = new List<string>()
{
    "privet1:privet",
    "privet2:privet",
    "privet3:privet",
    "privet4:privet"
};

var bad = new List<string>()
{
    "privet1:privet:34645646",
    "privet2:privet:364765867765",
    "privet3:privet:253645788765344356"
};

var good = mix.Where(x=> !bad.Any(y=>y.Contains(x)));
return string.Join("|", good);
 

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 130
Благодарностей
487
Баллы
83
На Вашем примере приблизительно так:

C#:
List<string> bad = project.Lists["account_sended"].ToList();
List<string> mix = project.Lists["account_sending"].ToList();
var good = project.Lists["account_for_send"];
var tmpGood = mix.Where(x=> !bad.Any(y=>y.Contains(x)));
foreach (var goodItem in tmpGood)
    good.Add(goodItem);
 
  • Спасибо
Реакции: Gizmond

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