convertire valori di casella di testo separati da virgola a più virgole con virgolette singole

Ho un codice che converte i molteplici elementi selezionati da listbox in una singola riga con valori separati da virgole. ora voglio ottenere la stessa cosa in multiline texbox, nella casella di testo multilinea i valori saranno come abc, def, pqr ora voglio separarlo per cercare nel database ‘abc’, ‘def’, ‘pqr’. il codice qui sotto che sto usando è per listbox come modificarlo in modo che io possa usarlo per lo scopo della casella di testo

var SB = new StringBuilder(); foreach (ListItem lst in ListBox1.Items) { if (lst.Selected) { SB.Append("'" + lst.Value + "',"); } } var FinalString = SB.ToString().Substring(0, (SB.Length - 1)); 

 String.Join(",", txt.Lines.Select(s => "'" + s + "'")) 

String.Join è un metodo che ottiene un separatore come primo argomento e una sequenza di stringhe come il secondo. Risolve il problema fuori dalla scatola e, cosa più importante, risolve il problema dell’ultima virgola che è così fastidioso quando lo si fa con i loop. È ansible utilizzare questo metodo per il codice della casella di riepilogo.

Il secondo argomento mappa una serie di stringhe sulle stesse stringhe con virgolette singole aggiunte. Fondamentalmente richiede un mucchio di stringhe e applica la trasformazione a ciascuna di esse e restituisce un gruppo di stringhe trasformate. La trasformazione è rappresentata nell’espressione lambda.

La risposta originale è perfettamente a posto. Notare che un’alternativa alla modifica di ciascuna stringa di input consiste semplicemente nel build il testo unito in modo diverso:

 "'" + string.Join("','", txt.Lines) + "'" 

In questo modo, vengono creati meno oggetti intermedi (nessun iteratore Select() e solo una chiamata extra a string.Concat() invece di uno per elemento di enumerazione). Nella maggior parte dei casi, non vi sarà alcuna differenza misurabile tra i due, ma alcuni potrebbero preferire questo approccio (il codice è un po ‘più breve, dopo tutto 😊).