Как разделить строковый массив на новый строковый массив с помощью удаления дубликата - PullRequest
0 голосов
/ 21 января 2019

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

Например, в приведенном ниже примере: слова «привет» и «друзья» встречаются дважды, но мы записываем их один раз во второй массив, это не так.t всегда должно быть вдвое больше, иногда 3 или более, и, например, слово «hi» и «friends», возможно, другие слова встречаются два или более раз.)

Например;

string[] myString = {"hello friends", "hi guys", "hi friends", "how are", "123654 u?", "today man", "! ?", "maybe tomorrow", "5 2-", "99 1585126", "(/&&/& _____"};

Я хочу разбить его на новый строковый массив, подобный этому (в соответствии с символом пробела);

string[] new = {"hello", "friends", "hi", "guys", "how", "are", "123654", "u?", "today", "man", "!", "?", "maybe", "tomorrow","5" ,"2-" ,"99", "1585126", "/&&/&", "_____"} ;

Ответы [ 3 ]

0 голосов
/ 21 января 2019

Используйте «SelectMany» и «Distinct» с «Trim»:

var arr = myString.SelectMany(x => x.Trim().Split(' ')).Distinct(StringComparer.InvariantCultureIgnoreCase).ToArray();
0 голосов
/ 22 января 2019

Вы можете написать функцию:

public string[] GetDistinctArray(string[] input) { var str = string.Join("",input).Split(' ');return str.Distinct().ToArray();}
0 голосов
/ 21 января 2019

Используйте SelectMany и Distinct:

string[] newArray = myString.SelectMany(s => s.Split(' ')).Distinct().ToArray();

Если вы хотите сравнивать без учета регистра, передайте соответствующий компаратор на Distinct:

string[] newArray = myString.SelectMany(s => s.Split(' ')).Distinct(StringComparer.InvariantCultureIgnoreCase).ToArray();
...