A seconda dei requisiti di prestazioni è possibile concat utilizzando l'operatore di addizione:
string finalName = string.Empty;
foreach(row in Dataset)
{
finalName += row.name;
}
o utilizzare un StringBuilder:
Stringbuilder sb = new StringBuilder();
foreach(row in Dataset)
{
sb.Append(row.Name);
}
string finalName = sb.ToString();
Generale per numeri molto piccoli di accodamenti non si noterà una differenza tra le due versioni. Ma se si stanno combinando molte stringhe, ci possono essere delle prestazioni notevoli e dei benefici della memoria nell'uso di StringBuilder.
Inoltre, tenere presente che questo posizionerà le stringhe direttamente una dopo l'altra in modo da poter anche aggiungere uno spazio o una nuova riga tra ciascuna di esse.
bonus speciale LINQ one-liner:
Dal momento che ti sembra di essere di nuovo da C# Io suggerirei che si ignora questo dato che è abbastanza avanzato e francamente non come leggibile (ma dall'altra mano a chi non piace lanciare pezzi casuali di LINQ nel loro codice?). Comunque, lo aggiungerò qui per completezza. Non so come sia la performance, ma uno dei principali vantaggi rispetto agli altri metodi è la facilità con cui puoi posizionare uno spazio o un altro personaggio tra le stringhe. Basta cambiare il valore nella linea marcata a qualsiasi valore che si desidera separare le stringhe combinate con (Environment.NewLine o "", per esempio)
string finalName = string.Join(
"", //Change the value here to separate the strings.
(from row in Dataset
select row.Name).ToArray());
o, se si preferisce lambda a LINQ:
string finalName = string.Join(
"", //Change the value here to separate the strings.
Dataset.Select(row => row.Name).ToArray());
fonte
2009-06-15 18:01:18
Che lingua è? –
Per che lingua è questo? Sembra C#, ma potrebbe facilmente essere qualcos'altro. È necessario aggiungere un qualche tipo di delimitatore tra i nomi delle righe o willitbeareallylongnameinthefinale risultato? –
@ Dillie-O modo eccellente di mostrare perché un delimitatore potrebbe essere una buona idea, +1 – kastermester