¿Cómo convierto una matriz en un conjunto de hash?Convierta una matriz a HashSet <T> en .NET
string[] BlockedList = BlockList.Split(new char[] { ';' },
StringSplitOptions.RemoveEmptyEntries);
Necesito convertir esta lista en hashset
.
¿Cómo convierto una matriz en un conjunto de hash?Convierta una matriz a HashSet <T> en .NET
string[] BlockedList = BlockList.Split(new char[] { ';' },
StringSplitOptions.RemoveEmptyEntries);
Necesito convertir esta lista en hashset
.
No se especifica qué tipo BlockedList
es, así que asumiré que es algo que se deriva de IList
(si quería decir String
donde escribió BlockList
entonces sería una matriz de cadena que se deriva de IList
).
HashSet
tiene un constructor que toma un IEnumerable
, por lo que basta con pasar la lista en este constructor, como se deriva de IList
IEnumerable
.
var set = new HashSet(BlockedList);
Supongo que BlockList es una cadena (de ahí la llamada a Split) que devuelve una matriz de cadenas.
sólo tiene que pasar la matriz (que implementa IEnumerable) a la constructor of the HashSet:
var hashSet = new HashSet<string>(BlockedList);
Aquí es un método de extensión que va a generar un HashSet desde cualquier IEnumerable:
public static HashSet<T> ToHashSet<T>(this IEnumerable<T> source)
{
return new HashSet<T>(source);
}
de usarlo con su ejemplo anterior:
var hashSet = BlockedList.ToHashSet();
Missed new keyword on extensio n ejemplo ....
public static HashSet<T> ToHashSet<T>(this IEnumerable<T> source)
{
return new HashSet<T>(source);
}
Para dar un paso más, la siguiente de una sola línea muestra cómo se puede convertir un literal gama cadena a un HashSet, de modo que usted no tiene que definir una variable intermedia SomethingList
.
var directions = new HashSet<string>(new [] {"east", "west", "north", "south"});
¿Qué tipo de lista/matriz es esta? ¿Qué contiene? – Bernard
Llamarlo BlockList es * muy * engañoso. Sugeriría BlockNames. –
posible duplicado de [Cómo convertir resultados de linq a HashSet o HashedSet] (http://stackoverflow.com/questions/3471899/how-to-convert-linq-results-to-hashset-or-hashedset) – nawfal