Tengo una lista de cadenas en C# y quiero crear una lista de caracteres únicos que están en las cadenas de la lista, usando LINQ.usando LINQ en C# para convertir una lista <string> en una lista <char>
Hasta ahora he resuelto cómo convertir la Lista en una Lista, pero no puedo encontrar la manera de conseguir que el LINQ vaya más allá.
Lo que tengo hasta ahora es la siguiente:
List<string> dictionary = new List<string>(someArray);
List<string[]> uniqueCharacters = dictionary.ConvertAll(s => s.Split());
Creo que necesito algo en la línea de
List<char> uniqueCharacters =
dictionary.ConvertAll(s => s.Split()).SelectAll(t, i=>t[i][0]);
Lista uniqueCharacters = dictionary.SelectMany (s => s.ToCharArray()) Distinct(). ToList(); es lo que fui al final - gracias :) –
simonalexander2005
Usando un 'HashSet' al final' var distinct = new HashSet (chars) 'es otra alternativa razonable si la pregunta se interpreta de forma más liberal. Consulte también http://stackoverflow.com/questions/1388361/getting-all-unique-items-in-ac-list –
La llamada 'ToCharArray' no es necesaria y tiene un pequeño impacto en el rendimiento porque los caracteres deben copiarse de la cadena fuente a una nueva matriz. Simplemente puede hacer 'list.SelectMany (s => s)' en su lugar. – LukeH