Questione : Come unisco 2 List in un DataTable using LINQ?

Ciao: il

I che prova ad unire 2 fonti di dati in un DataTable using le fonti di dati di CopyToDataTable.
The è di tipo List>.



//definiscono i viaggiatori del columns
DataTable;

Travelers = nuovo DataTable (“viaggiatori„); colonna del
DataColumn;
column = nuovo DataColumn (“nome e cognome„, Type.GetType (“System.String„));
Travelers.Columns.Add (column);
column = nuovo DataColumn (“IsFreePlace„, Type.GetType (“System.Boolean„));
Travelers.Columns.Add (column);
column = nuovo DataColumn (“, Type.GetType (“System.Decimal„ di IndividualPaymentAmount "));
Travelers.Columns.Add (column); la domanda del


////////////////////////////////////////////////////////////////////////////////////////////////////
//per consolidare 2 fonti di dati nelle fonti di LINQ del query
//di dati del
//ha la seguente forma:
//
//  ListOfItems --> ListA, informazioni del int>>
//
// --> ListB, domanda del decimal>>
//
//
////////////////////////////////////////////////////////////////////////////////////////////////////
var = (dal pax in ListOfItems
dal pInfo in Information
dove pax. Il == pInfo.Key.TravelerID
di valore seleziona nuovo {pax. Key.FirstName,
pax. Key.LastName,
pax. Key.IsFreePlace,
pInfo.Value}); deposito del


//questa Info consolidata in un table
Travelers = query.CopyToDataTableRow> ();


////////////////////////////////////////////////////////////////////////////////////////////////////
//quando provo il di cui sopra, ottengo il seguente errore del compilatore: discussione di caso del
////////////////////////////////////////////////////////////////////////////////////////////////////
Error 31: non può convertire “da System.Collections.Generic.IEnumerableousType#1>„ 'in Br/>
Error 30 “System.Collections.Generic.IEnumerableousType#1>„ di System.Collections.Generic.IEnumerable.Data.DataRow>'< non contiene una definizione per “CopyToDataTable„ ed il migliore sovraccarico “System.Data.DataTableExtensions di metodo di estensione. CopyToDataTable (System. Collections. Generic.IEnumerable)„ ha certo arguments

////////////////////////////////////////////////////////////////////////////////////////////////////
Next, io ha provato quanto segue: domanda del
////////////////////////////////////////////////////////////////////////////////////////////////////
IEnumerable = (dal pax in ListOfItems
dal pInfo in Information
dove pax. Il == pInfo.Key.TravelerID
di valore seleziona nuovo {pax. Key.FirstName,
pax. Key.LastName,
pax. Key.IsFreePlace,
pInfo.Value});

////////////////////////////////////////////////////////////////////////////////////////////////////
//quando provo il di cui sopra, ottengo il seguente errore del compilatore: tipo “System.Collections.Generic.IEnumerableousType#1>„ del convertito del
////////////////////////////////////////////////////////////////////////////////////////////////////
Can non implicitamente “a System.Collections.Generic.IEnumerable.Data.DataRow>„. Una conversione esplicita esiste (siete che mancate un getto?)il



I può usare facilmente appena il primo metodo ed allora ripete con un ciclo del foreach, ma il would
like di I per provare ad utilizzare in anticipo il metodo di CopyToDatTable () dello System.Data.DataTableExtensions.


Thanks,
JohnB
class= del

Risposta : Come unisco 2 List in un DataTable using LINQ?

Ciao jxbma;

La domanda che state provando ad eseguire e riempire i relativi risultati in un DataTable non funzionerà. La sintassi per il CopyToDataTable è come segue:

Funzione comune pubblico CopyToDataTable (di T come DataRow) (_
      fonte come IEnumerable (T) di _
) Come DataTable

Ma che cosa avete è il seguente:

domanda di varietà = (dal pax in ListOfItems
                   dal pInfo nelle informazioni
                   dove pax. == pInfo.Key.TravelerID di valore
                   selezionare nuovo {pax. Key.FirstName,
                                        pax. Key.LastName,
                                        pax. Key.IsFreePlace,
                                        pInfo.Value});

Quale il tipo della domanda è di tipo anonimo può essere veduto dalla clausola prescelta dove usate la parola chiave nuova senza un tipo. Quando interrogate la lista due i risultati è di una certa lista o IEnumerable. Non ci è funzione che convertirà una lista in DataRow di un DataTable.

La soluzione sarà di collegare con i risultati e di generare un DataRow dal DataTable per ogni elemento del risultato fissato.

Fernando

Altre soluzioni  
 
programming4us programming4us