Подтвердить что ты не робот

Список <строки, разделенные запятой> => Список <строкa>?

Попытка придумать способ LINQy для этого, но ничего не приходит ко мне.

У меня есть List < > объектов, которые включают свойство, которое представляет собой список альфа-кодов, разделенных запятыми:

lst[0].codes = "AA,BB,DD"
lst[1].codes = "AA,DD,EE"
lst[2].codes = "GG,JJ"

Мне хотелось бы получить список этих кодов, надеюсь, в виде списка строк:

result = AA,BB,DD,EE,GG,JJ

Спасибо за любое направление.

4b9b3361

Ответ 1

Используйте SelectMany, чтобы получить все сплит-коды и используйте Distinct не повторять значения. Попробуйте что-то вроде этого:

var result = lst.SelectMany(x => x.codes.Split(",")).Distinct().ToList();

Ответ 2

Вам нужно использовать Split, чтобы разделить каждую строку на несколько строк. Затем вам нужно использовать SelectMany, чтобы объединить несколько последовательностей в одну последовательность, а затем вам нужно использовать Distinct, чтобы удалить дубликаты.

var result =
    lst
    .SelectMany(x => x.codes.Split(','))
    .Distinct()
    .ToList();

Ответ 3

если в результате вам понадобится string:

string result = string.Join(",",lst.SelectMany(p=>p.codes.Split(",")).Distinct());

Ответ 4

Попробуйте следующее:

  List<string> list = new List<string>();

  char[] sep = new char[1];
  sep[0] = ',';
  foreach (string item in lst)
  {
       list.AddRange(item.Split(sep));
  }

  list = list.Distinct().ToList();