Pytanie : Dlaczego I łączyć 2 List's w DataTable using LINQ?

Cześć:

I am 2 dane źródło w DataTable using LINQ i CopyToDataTable.
The dane źródło być typ List>.



//Definiować the stół & columns
DataTable Podróżniczka;

Travelers = nowy DataTable ("Podróżnik");
DataColumn kolumna;
column = nowy DataColumn ("FullName", Type.GetType ("System.String"));
Travelers.Columns.Add (column);
column = nowy DataColumn ("IsFreePlace", Type.GetType ("System.Boolean"));
Travelers.Columns.Add (column);
column = nowy DataColumn ("IndividualPaymentAmount " , Type.GetType ("System.Decimal"));
Travelers.Columns.Add (column);


////////////////////////////////////////////////////////////////////////////////////////////////////
//Zapytanie 2 dane źródło w LINQ query
//
//Dane źródło mieć the następujący forma:
//
//  ListOfItems --> ListA, int>>
//
//Informacja --> ListB, decimal>>
//
//
////////////////////////////////////////////////////////////////////////////////////////////////////
var zapytanie = (od pacyfikał w ListOfItems
od pInfo w Information
dokąd pacyfikał. Wartość == pInfo.Key.TravelerID
wybrany nowy {pacyfikał. Key.FirstName,
pacyfikał. Key.LastName,
pacyfikał. Key.IsFreePlace,
pInfo.Value});


//Sklep ten konsolidować info w table
Travelers = query.CopyToDataTableRow> ();


////////////////////////////////////////////////////////////////////////////////////////////////////
//Gdy I próbować the above, I dostawać the następujący kompilator błąd:
////////////////////////////////////////////////////////////////////////////////////////////////////
Error 31 Przykład argument: móc od "System.Collections.Generic.IEnumerableousType#1>" 'System.Collections.Generic.IEnumerable.Data.DataRow>'< br/>
Error 30 "System.Collections.Generic.IEnumerableousType#1>" zawierać definicja dla "CopyToDataTable" i the najlepszy rozszerzenie metoda przeciążenie "System.Data.DataTableExtensions. CopyToDataTable (System. Collections. Generic.IEnumerable)" mieć niektóre nieważny arguments

////////////////////////////////////////////////////////////////////////////////////////////////////
Next, I próbować the następujący:
////////////////////////////////////////////////////////////////////////////////////////////////////
IEnumerable zapytanie = (od pacyfikał w ListOfItems
od pInfo w Information
dokąd pacyfikał. Wartość == pInfo.Key.TravelerID
wybrany nowy {pacyfikał. Key.FirstName,
pacyfikał. Key.LastName,
pacyfikał. Key.IsFreePlace,
pInfo.Value});

////////////////////////////////////////////////////////////////////////////////////////////////////
//Gdy I próbować the above, I dostawać the następujący kompilator błąd:
////////////////////////////////////////////////////////////////////////////////////////////////////
Can domyślnie konwertyta typ "System.Collections.Generic.IEnumerableousType#1>" "System.Collections.Generic.IEnumerable.Data.DataRow>". Wyraźny zamiana istnieć (być ty obsada?)



I móc łatwo właśnie the właśnie metoda, i wtedy iterate z foreach pętla, ale I would
like the CopyToDatTable () metoda the System.Data.DataTableExtensions.


Thanks w postęp,
JohnB

Odpowiedź : Dlaczego I łączyć 2 List's w DataTable using LINQ?

Cześć jxbma;

The zapytanie ty próbować i swój rezultat w DataTable z pracować. The składnia dla the CopyToDataTable być podążać:

Społeczeństwo Podzielony Funkcja CopyToDataTable (T Jako DataRow) (_
      źródło Jako IEnumerable (T) _
) Jako DataTable

Ale ty ty mieć być the następujący:

var zapytanie = (od pacyfikał w ListOfItems
                   od pInfo w Informacja
                   dokąd pacyfikał. Wartość == pInfo.Key.TravelerID
                   wybrany nowy {pacyfikał. Key.FirstName,
                                        pacyfikał. Key.LastName,
                                        pacyfikał. Key.IsFreePlace,
                                        pInfo.Value});

Typ the typ the zapytanie być Anonimowy typ móc widzieć od the wybrany klauzula dokąd ty używać the słowo kluczowe nowy bez typ. Gdy ty query dwa Lista the rezultat być niektóre Lista lub IEnumerable. Tam  być żadny funkcja który nawracać Lista DataRow DataTable.

The rozwiązanie być przez the rezultat i DataRow od the DataTable dla ustawiać element the rezultat ustawiać.

Fernando

Inne rozwiązania  
 
programming4us programming4us