708 messaggi dal 11 febbraio 2013
dovendo inserire delle righe in un datatable (che legge da un csv)

faccio questo orrore:
var rowData = csvData[rowNum].Split(';');
table.Rows.Add(rowNum, rowData[2],... rowData[37]);


come posso passare una lista di elementi di un array di stringhe anzichè
passare da 2 a 37 colonne come sopra

grazie
11.050 messaggi dal 09 febbraio 2002
Contributi
Ciao,
anche se un parametro è decorato con "params" non sei obbligato a fornire gli argomenti individualmente. In questo caso puoi passare un unico argomento di tipo object[].

rowData è un buon candidato da cui iniziare perché è già un array. Bisogna solo modificarlo in questo modo:
  • Concatenargli il rowNum in prima posizione
  • Cambiare il tipo in object[], mentre ora è string[]


Quindi puoi fare così:
int rowNum = 1;
//Creo un array di un solo elemento contenente rowNum
string[] numArray = new[] { rowNum.ToString() };
//Estraggo i valori dal CSV
string[] rowData = csvData[rowNum].Split(';');
//Concateno i due array e converto a object[]
object[] row = numArray.Concat(rowData).Cast<object>().ToArray();
//Aggiungo la riga
dt.Rows.Add(row);


ciao,
Moreno
Modificato da BrightSoul il 31 ottobre 2018 18.18 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.