Question : Comment est-ce que je combine 2 List dans un DataTable using LINQ ?

Salut : le

I AM essayant de combiner 2 points d'émission dans un DataTable using des points d'émission de LINQ et de CopyToDataTable.
The sont de type List>.



//définissent les voyageurs de table et de columns
DataTable ;

Travelers = nouveau DataTable (« voyageurs ») ; colonne du
DataColumn ;
column = nouveau DataColumn (« nom et prénom », Type.GetType (« System.String »));
Travelers.Columns.Add (column) ;
column = nouveau DataColumn (« IsFreePlace », Type.GetType (« System.Boolean »));
Travelers.Columns.Add (column) ;
column = nouveau DataColumn (, Type.GetType (« System.Decimal » de « IndividualPaymentAmount "));
Travelers.Columns.Add (column) ; la question du


////////////////////////////////////////////////////////////////////////////////////////////////////
//pour consolider 2 points d'émission dans des points d'émission du
//du query
//de LINQ ont la forme suivante :
//
//  ListOfItems --> ListA, l'information de l'int>>
//
// --> ListB, question du decimal>>
//
//
////////////////////////////////////////////////////////////////////////////////////////////////////
var = (du Pax dans ListOfItems
de pInfo dans Information
où Pax. Le == pInfo.Key.TravelerID
de valeur choisissent nouveau {Pax. Key.FirstName,
Pax. Key.LastName,
Pax. Key.IsFreePlace,
pInfo.Value}) ; magasin du


//cette information consolidée dans un table
Travelers = query.CopyToDataTableRow> () ; le


////////////////////////////////////////////////////////////////////////////////////////////////////
//quand j'essaye ce qui précède, j'obtiens l'erreur suivante de compilateur : argument d'exemple du
////////////////////////////////////////////////////////////////////////////////////////////////////
Error 31 : ne peut pas convertir de « System.Collections.Generic.IEnumerableousType#1> » en 'Br/>
Error 30 « System.Collections.Generic.IEnumerableousType#1> » de System.Collections.Generic.IEnumerable.Data.DataRow>'< ne contient pas une définition pour « CopyToDataTable » et la meilleure surcharge « System.Data.DataTableExtensions de méthode de prolongation. CopyToDataTable (System. Collections. Generic.IEnumerable) » a un certain arguments

////////////////////////////////////////////////////////////////////////////////////////////////////
Next, j'a essayé ce qui suit : question du
////////////////////////////////////////////////////////////////////////////////////////////////////
IEnumerable = (du Pax dans ListOfItems
de pInfo dans Information
où Pax. Le == pInfo.Key.TravelerID
de valeur choisissent nouveau {Pax. Key.FirstName,
Pax. Key.LastName,
Pax. Key.IsFreePlace,
pInfo.Value}) ; le

////////////////////////////////////////////////////////////////////////////////////////////////////
//quand j'essaye ce qui précède, j'obtiens l'erreur suivante de compilateur : type « System.Collections.Generic.IEnumerableousType#1> » de converti du
////////////////////////////////////////////////////////////////////////////////////////////////////
Can pas implicitement à « System.Collections.Generic.IEnumerable.Data.DataRow> ». Une conversion explicite existe (êtes vous manquant une fonte ?)le



I peut facilement juste employer la �ère méthode, et puis réitère avec une boucle de foreach, mais le would
like d'I pour essayer d'utiliser la méthode de CopyToDatTable () de System.Data.DataTableExtensions.


Thanks à l'avance, le
JohnB
class= de

Réponse : Comment est-ce que je combine 2 List dans un DataTable using LINQ ?

Salut jxbma ;

La question que vous essayez de s'exécuter et remplir ses résultats dans un DataTable de ne fonctionnera pas. La syntaxe pour le CopyToDataTable est comme suit :

Fonction partagée par public CopyToDataTable (de T comme DataRow) (_
      source comme IEnumerable (T) de _
) Comme DataTable

Mais ce que vous avez est le suivant :

question de variété = (du Pax dans ListOfItems
                   du pInfo dans l'information
                   là où Pax. == pInfo.Key.TravelerID de valeur
                   choisir nouveau {Pax. Key.FirstName,
                                        Pax. Key.LastName,
                                        Pax. Key.IsFreePlace,
                                        pInfo.Value}) ;

Ce qui est le type de la question de type anonyme comme peut être vu de la clause choisie où vous employez le mot-clé nouveau sans type. Quand vous questionnez la liste deux les résultats est d'une certaine liste ou IEnumerable. Il n'y a aucune fonction qui convertira une liste en DataRow d'un DataTable.

La solution sera de faire une boucle par les résultats et de créer un DataRow du DataTable pour chaque élément du résultat réglé.

Fernando

Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us