Есть коллекция , в коллекции строки вида:
stud1/name1?a=lend1223
stud/name2?b=lend356
stud/name3?v=lend56
надо удалить все дубликаты строк из этой коллекции строго по этой части: "?a=" то есть от символа: "?" до символа: "="
как это возможно реализовать по проще?
Выбрать элементы в ключ, по которым будут отрезаны дубликаты. Сгруппировать по этому ключу. Отобрать из каждой группы по одному элементу.
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();
collection.Where((x, i) =>
collection.Where((y, j) =>
j < i &&
y.Contains(
x.Substring(x.IndexOf("?"),
1 + x.IndexOf("=") - x.IndexOf("?")))).Count() == 0);
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);
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости