Pergunta : Como eu combino 2 List em um DataTable using LINQ?

Olá!: o

I am que tenta combinar 2 origens de dados em um DataTable using origens de dados de LINQ e de CopyToDataTable.
The é do tipo List>.



//definem os viajantes da tabela & do columns
DataTable;

Travelers = DataTable novo (“viajantes”); coluna do
DataColumn;
column = DataColumn novo (“apelido e nome”, Type.GetType (“System.String”));
Travelers.Columns.Add (column);
column = DataColumn novo (“IsFreePlace”, Type.GetType (“System.Bôolean”));
Travelers.Columns.Add (column);
column = DataColumn novo (de “ IndividualPaymentAmount ", Type.GetType (“System.Decimal”));
Travelers.Columns.Add (column); a pergunta do


////////////////////////////////////////////////////////////////////////////////////////////////////
//para consolidar 2 origens de dados em origens de dados do
//do query
//de LINQ tem o seguinte formulário:
//
//  ListOfItems --> ListA, informação do int>>
//
// --> ListB, pergunta do decimal>>
//
//
////////////////////////////////////////////////////////////////////////////////////////////////////
var = (do pax em ListOfItems
do pInfo em Information
onde pax. O == pInfo.Key.TravelerID
do valor seleciona novo {pax. Key.FirstName,
pax. Key.LastName,
pax. Key.IsFreePlace,
pInfo.Value}); loja do


//esta informação consolidada em um table
Travelers = query.CopyToDataTableRow> (); o


////////////////////////////////////////////////////////////////////////////////////////////////////
//quando eu tento o acima, eu começ o seguinte erro do compilador: argumento do exemplo do
////////////////////////////////////////////////////////////////////////////////////////////////////
Error 31: não pode converter de “System.Collections.Generic.IEnumerableousType#1>” 'ao Br/>
Error 30 “System.Collections.Generic.IEnumerableousType#1>” de System.Collections.Generic.IEnumerable.Data.DataRow>'< não contem uma definição para “CopyToDataTable” e a melhor sobrecarga “System.Data.DataTableExtensions do método da extensão. CopyToDataTable (System. Collections. Generic.IEnumerable)” tem algum arguments

////////////////////////////////////////////////////////////////////////////////////////////////////
Next, mim tentou o seguinte: pergunta do
////////////////////////////////////////////////////////////////////////////////////////////////////
IEnumerable = (do pax em ListOfItems
do pInfo em Information
onde pax. O == pInfo.Key.TravelerID
do valor seleciona novo {pax. Key.FirstName,
pax. Key.LastName,
pax. Key.IsFreePlace,
pInfo.Value}); o

////////////////////////////////////////////////////////////////////////////////////////////////////
//quando eu tento o acima, eu começ o seguinte erro do compilador: tipo “System.Collections.Generic.IEnumerableousType#1>” do converso do
////////////////////////////////////////////////////////////////////////////////////////////////////
Can não implicitamente a “System.Collections.Generic.IEnumerable.Data.DataRow>”. Uma conversão explícita existe (é você que falta um molde?)o



I pode facilmente apenas usar o ø método, e itera então com um laço do foreach, mas would
like de I para tentar utilizar adiantado o método de CopyToDatTable () do System.Data.DataTableExtensions.


Thanks, o
JohnB
class= do

Resposta : Como eu combino 2 List em um DataTable using LINQ?

Olá! jxbma;

A pergunta que você está tentando executar e encher seus resultados em um DataTable com não trabalhará. A sintaxe para o CopyToDataTable é como segue:

Função compartilhada público CopyToDataTable (de T como DataRow) (_
      fonte como IEnumerable (T) do _
) Como DataTable

Mas o que você tem é o seguinte:

pergunta do var = (do pax em ListOfItems
                   do pInfo na informação
                   onde pax. == pInfo.Key.TravelerID do valor
                   selecionar novo {pax. Key.FirstName,
                                        pax. Key.LastName,
                                        pax. Key.IsFreePlace,
                                        pInfo.Value});

Quais o tipo da pergunta é do tipo anónimo como pode ser visto da cláusula seleta onde você usa a palavra-chave nova sem um tipo. Quando você pergunta a lista dois os resultados é de algum lista ou IEnumerable. Não há nenhuma função que converterá uma lista a um DataRow de um DataTable.

A solução será dar laços com os resultados e criar um DataRow do DataTable para cada elemento do resultado ajustado.

Fernando

Outras soluções  
 
programming4us programming4us