我想从不同的List实现以下格式的数据。
使用以下代码:
List<SalesOrder> SalesOrder = new List<SalesOrder>();
List<Sales> Sales = new List<Sales>();
SalesOrder.Add(new SalesOrder { VoucherNumber = "1", Date = "01-04-2018", LedgerName = "Sales Party", Refernce = "1", StockItem = "Item 1", Description = "", qnt = "1200", Rate = "120", Amount = "14000" });
SalesOrder.Add(new SalesOrder { VoucherNumber = "1", Date = "01-04-2018", LedgerName = "Sales Party", Refernce = "1", StockItem = "Item 2", Description = "", qnt = "78", Rate = "980", Amount = "76440" });
SalesOrder.Add(new SalesOrder { VoucherNumber = "2", Date = "04-04-2018", LedgerName = "Sales Party", Refernce = "2", StockItem = "Item 3", Description = "", qnt = "350", Rate = "345", Amount = "120750" });
Sales.Add(new Sales { VoucherNumber = "1", Date = "05-04-2018", Refernce = "1", LedgerName = "SalePartyLedgerName", Description = "", qnt = "100 nos", Rate = "120", Amount = "12000" });
Sales.Add(new Sales { VoucherNumber = "1", Date = "05-04-2018", Refernce = "1", LedgerName = "SalePartyLedgerName", Description = "", qnt = "40 nos", Rate = "980", Amount = "39200" });
var res = from so in SalesOrder
join s in Sales
on so.VoucherNumber equals s.Refernce into ps
from s in ps.DefaultIfEmpty()
select new
{
SONO = so.VoucherNumber,
SODate = so.Date,
SoCustomer = so.LedgerName,
SoItem = so.StockItem,
SoDescription = so.Description,
SoUnit = so.qnt,
SoRate = so.Rate,
SoAmount = so.Amount,
SInvNum = s?.VoucherNumber ?? string.Empty,
SDate = s?.Date ?? string.Empty,
SQnt = s?.qnt ?? string.Empty,
SRate = s?.Rate ?? string.Empty,
SAmount = s?.Amount ?? string.Empty
};
我得到以下结果:
我想基于引用号合并这两个列表。目前我尝试过的是基于左连接的,但是该项目正在按第二个列表中存在的项目数进行重复。您可能会注意到,第一个图像仅显示了包含“ 1”作为数字的2行数据,而我的c#代码正在创建其中的4行,并且数据也在下一行中重复出现并随地吐痰。
要获得所需的结果,我需要做哪些更改?
任何有关示例的帮助将不胜感激。
对不起,我的英语不好。