C# Array, Come rendere i dati in un array distinti l'uno dall'altro? Per esempioC# Array, Come rendere i dati in un array distinti tra loro?
string[] a = {"a","b","a","c","b","b","c","a"};
Come arrivare
string[]b = {"a","b","c"}
C# Array, Come rendere i dati in un array distinti l'uno dall'altro? Per esempioC# Array, Come rendere i dati in un array distinti tra loro?
string[] a = {"a","b","a","c","b","b","c","a"};
Come arrivare
string[]b = {"a","b","c"}
Il modo più semplice è il comando LINQ Distinct()
:
var b = a.Distinct().ToArray();
Si potrebbe voler considerare l'utilizzo di un Set al posto di un array. I set non possono contenere duplicati, quindi aggiungere il secondo "a" non avrebbe alcun effetto. In questo modo la tua collezione di personaggi non conterrà mai duplicati e non dovrai eseguire alcuna elaborazione post su di essa.
Una matrice, con cui si inizia, è IEnumerable<T>
. IEnumerable<T>
ha un Distinct()
method che può essere usato per manipolare la lista nei suoi valori distinti
var distinctList = list.Distinct();
Infine, IEnumerable<T>
ha un metodo ToArray()
:
var b = distinctList.ToArray();
var list = new HashSet<string> { };
list.Add("a");
list.Add("a");
var countItems = list.Count(); //in this case countItems=1
penso utilizzando C# dizionario è il meglio modo e posso ordinare per valore utilizzando LINQ
string [] b = a.Distinct(); – Rony
@Rony - 'Distinct' fornisce un array ... –
Distinct restituisce un IEnumerable. È necessario il ToArray() per lanciarlo su un array. –
arviman