2つのListデータセットを1つのListにまとめる
2943 ワード
開発ツールとキーテクノロジー:Visual StudioとC#
作者:黄燦
作成時間:2019.7.25
2つの差が異なるテーブルをクエリーします.1つは入庫テーブルで、1つは返品テーブルで、フィールドはほぼ同じですが、違いがあります.入庫テーブルの数とすべての金額は正数で、返品テーブルの数と金額は負数です.だからjoinチェーンテーブルクエリーはできません.2つのToListを別々にクエリーする必要があります.しかしreturnは1つしかなく、returnは2回もできず、クエリーされたデータは1つの決算表に置くことも、2つのactionを持つこともできません.だから私は2回照会して、1回join入庫表、1回join返品表、照会したデータは2つのリストにあります.
作者:黄燦
作成時間:2019.7.25
2つの差が異なるテーブルをクエリーします.1つは入庫テーブルで、1つは返品テーブルで、フィールドはほぼ同じですが、違いがあります.入庫テーブルの数とすべての金額は正数で、返品テーブルの数と金額は負数です.だからjoinチェーンテーブルクエリーはできません.2つのToListを別々にクエリーする必要があります.しかしreturnは1つしかなく、returnは2回もできず、クエリーされたデータは1つの決算表に置くことも、2つのactionを持つこともできません.だから私は2回照会して、1回join入庫表、1回join返品表、照会したデータは2つのリストにあります.
List
listStorageSettlement = (from tbSupplier in myModels.SYS_Supplier
join tbPurchaseStorage in myModels.PW_PurchaseStorage on tbSupplier.SupplierID equals tbPurchaseStorage.SupplierID
join tbInvoicesType in myModels.SYS_InvoicesType on tbPurchaseStorage.InvoicesTypeID equals
tbInvoicesType.InvoicesTypeID
where tbSupplier.SupplierID == SupplierID&&
tbPurchaseStorage.SettleStateID!=2&&tbPurchaseStorage.SettleStateID!=4
select new SupplierVo
{
InvoicesType =tbInvoicesType.InvoicesType,//
InvoicesTypeID =tbInvoicesType.InvoicesTypeID,//
StorageNumber =tbPurchaseStorage.StorageNumber,//
PurchaseStorageID =tbPurchaseStorage.PurchaseStorageID,// ID
makeFormDate = tbPurchaseStorage.MakeFormDate.ToString(),//
amountMoney =tbPurchaseStorage.AmountMoney,//
PaidAmount = 0,//
OutstandingAmount =tbPurchaseStorage.AmountMoney,//
DiscountedTotalAmount= 0,//
ThisDiscountAmount =0,//
ThisPaymentAmount =tbPurchaseStorage.AmountMoney,//
}).ToList();
List
listReturnSettlement = (from tbSupplier in myModels.SYS_Supplier
join tbPurchaseReturn in myModels.PW_PurchaseReturn on tbSupplier.SupplierID equals tbPurchaseReturn.SupplierID
join tbInvoicesType in myModels.SYS_InvoicesType on tbPurchaseReturn.InvoicesTypeID equals tbInvoicesType.InvoicesTypeID
where tbPurchaseReturn.SupplierID == SupplierID &&tbPurchaseReturn.SettleStateID != 2 &&tbPurchaseReturn.SettleStateID!= 4
select new SupplierVo
{
InvoicesType =tbInvoicesType.InvoicesType,///
InvoicesTypeID =tbInvoicesType.InvoicesTypeID,///
ReturnNumber =tbPurchaseReturn.ReturnNumber,//
PurchaseReturnID = tbPurchaseReturn.PurchaseReturnID,// ID
makeFormDate =tbPurchaseReturn.MakeFormDate.ToString(),//
amountMoney =tbPurchaseReturn.AmountMoney,//
PaidAmount = 0,//
OutstandingAmount =tbPurchaseReturn.AmountMoney,//
DiscountedTotalAmount= 0,//
ThisDiscountAmount =0,//
ThisPaymentAmount =tbPurchaseReturn.AmountMoney,//
}).ToList();
クエリの2つのList集合Listは同一でなければマージできません.2つのListデータ集合をクエリした後、
IEnumerable intsResult =listStorageSettlement.Union(listReturnSettlement)
再インスタンスの1つの集合を行い、IEnumerableは列挙を公開し、集合は簡単な反復伝送を行うことができ、Unionは2つのListデータ集合の並列集合をつなぎ合わせ、最後にintsResultに戻るだけで2つのToListのデータをすべてreturnすることができる.