Ho bisogno della funzione di cui sopra perché posso solo memorizzare StringCollection in Impostazioni, non Elenco di stringhe.Conversione lista <string> a StringCollection
Come si converte List in StringCollection?
Ho bisogno della funzione di cui sopra perché posso solo memorizzare StringCollection in Impostazioni, non Elenco di stringhe.Conversione lista <string> a StringCollection
Come si converte List in StringCollection?
stai:
StringCollection collection = new StringCollection();
collection.AddRange(list.ToArray());
alternativa, evitando la matrice intermedia (ma possibilmente coinvolgendo più riassegnazioni):
StringCollection collection = new StringCollection();
foreach (string element in list)
{
collection.Add(element);
}
conversione posteriore è facile con LINQ:
List<string> list = collection.Cast<string>().ToList();
Uso List.ToArray()
che converte List in una matrice che è possibile utilizzare per aggiungere valori i sul tuo StringCollection
.
StringCollection sc = new StringCollection();
sc.AddRange(mylist.ToArray());
//use sc here.
Leggi this
Ecco un metodo di estensione per convertire un IEnumerable<string>
ad un StringCollection
. Funziona allo stesso modo delle altre risposte, ma lo avvolge.
public static class IEnumerableStringExtensions
{
public static StringCollection ToStringCollection(this IEnumerable<string> strings)
{
var stringCollection = new StringCollection();
foreach (string s in strings)
stringCollection.Add(s);
return stringCollection;
}
}
io preferirei:
Collection<string> collection = new Collection<string>(theList);
Chiedo solo, essere raccomandato perché dovrebbe evitare gamma intermedia? – l46kok
@ l46kok: A parità di altre condizioni, si consiglia sempre di evitare copie intermedie aggiuntive. In questo caso, tuttavia, non è ovvio quale approccio sia più efficiente (a causa delle ulteriori riallocazioni) e probabilmente non è importante comunque, data la dimensione tipica di una raccolta di impostazioni. –
@MarceloCantos: sempre? Non vorrei andare con quello. Il primo codice è chiaramente più semplice, e dato che (come dici tu) probabilmente non è importante, io rimango con l'approccio forse meno efficiente ma più ovvio. –