[英]C# LINQ left join 2 Datatables
我有2個數據表,他們應該加入“UserID”但它不起作用。 我已經閱讀了文檔和其他解決方案,但它們也無法工作。
var dtjoined = from DataFileInfos in FileInfo.AsEnumerable()
join Recips in dtMail.AsEnumerable()
on DataFileInfos["UserID"] equals Recips["User name"]
into Tb3
from Tb3row in Tb3.DefaultIfEmpty()
select Tb3;
我想在最后一個帶左連接的數據表。 我沒有得到LINQ的要點,即使閱讀文檔,有人可以解釋一下嗎?
我如何獲得數據表? 我會做點什么的
foreach(var enum in dtjoined)
{
//do something to add that
myDatatable.rows.add(enum);
}
編輯:FileInfo:
Datatable FileInfo = new Datatable();
FileInfo.Columns.Add("Anything",typeof(anything));
...
FileInfo.Columns.Add("UserID",typeof(string));
DtMail的:
Datatable dtMail= new Datatable();
dtMail.Columns.Add("Anything",typeof(anything));
...
dtMail.Columns.Add("User name",typeof(string));
這些是我的兩個表,我希望他們加入UserID
所以最后得到了以下結果:
[FileInfo Column1] [FileInfo Column2] [FileInfo Column3] [FileInfo UserID] [dtMail E-Mail]
SomeValue SomeValue SomeValue UserID1 SomeMail
嘗試下面的代碼,在下面我只使用了一些類來向您展示如何使用LinQ返回自定義對象。
var dtjoined = from DataFileInfos in FileInfo.AsEnumerable()
join Recips in dtMail.AsEnumerable()
on DataFileInfos.Field<string>("UserID") equals Recips.Field<string>("User name")
select new { FirstColumn= DataFileInfos.FirstColumn, ... }; // or select new { FirstColumn= DataFileInfos.FirstColumn, ... }.ToList();
這將返回一個對象,並且你需要一個列表,而不是選擇DataFileInfos或Recips對象,或者你也可以創建另一個包含列表的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.