Как удалить из коллекции строки по определенной части?

225
14 апреля 2017, 18:55

Есть коллекция , в коллекции строки вида:

stud1/name1?a=lend1223
stud/name2?b=lend356
stud/name3?v=lend56

надо удалить все дубликаты строк из этой коллекции строго по этой части: "?a=" то есть от символа: "?" до символа: "="

как это возможно реализовать по проще?

Answer 1

Выбрать элементы в ключ, по которым будут отрезаны дубликаты. Сгруппировать по этому ключу. Отобрать из каждой группы по одному элементу.

List<string> list = new List<string>(){
    "stud1/name1?a=lend1223",
    "stud/name12?a=lend1223",
    "stud/name2?b=lend356",
    "stud/name22?b=lend356",
    "stud/name3?v=lend56"
};
List<string> nlist = list.Select(p => new { key = new Regex("\\?(.)*=", RegexOptions.IgnoreCase).Match(p).Groups[1].Value, value = p })
    .GroupBy(p => p.key)
    .Select(p => p.First().value)
    .ToList();
Answer 2
collection.Where((x, i) => 
  collection.Where((y, j) => 
    j < i && 
    y.Contains(
      x.Substring(x.IndexOf("?"), 
      1 + x.IndexOf("=") - x.IndexOf("?")))).Count() == 0);
Answer 3
string x = "bla-bla-bla";
int pos, pos2;
while ((pos = x.IndexOf('?')) !=-1 && ((pos2 = x.IndexOf('=')) !=-1))
    x = x.Substring(0,pos-1)+x.Substring(pos2+1);
READ ALSO
Asp.net core DbSet динамическое добавление Include

Asp.net core DbSet динамическое добавление Include

Всем привет! Продолжаю изучать aspnet core, и у меня есть просьба о помощи

178
Какой сервис использовать для отправки SMS?

Какой сервис использовать для отправки SMS?

Как сделать, чтобы при регистрации пользователю приходила SMS на телефон (для подтверждения входа)

214
Joomla. Read more

Joomla. Read more

CMS Joomla использую впервые, поэтому возникли проблемыВ редакторе Tinymce сохраняю длинный текст, но он обрезается на половину

209
Установка GD для PHP на ОП MAC OS X

Установка GD для PHP на ОП MAC OS X

Не могу установить GD для PHP на ОП MAC OS XПосле команды sudo install php5-gd мне выдает:

243