我从服务提供商处获得了一个以竖线分隔的平面文件提要,其中包含发票、行项目和分配信息,它们都合并为一个。但是,我处理这些信息的对象模型是标准化的。
我有一个(简化的)对象模型,如下所示:
public class Invoice
{
public int InvoiceId {get; set;}
public decimal Amount {get; set;}
public virtual ICollection<LineItem> LineItems {get; set;}
}
public class LineItem
{
public virtual Invoice Invoice {get; set}
public int SequenceNumber {get; set;}
public decimal Quantity {get; set;}
public decimal PricePerUnit {get; set;}
public virtual ICollection<Allocation> Allocations {get; set;}
}
public class Allocation
{
public virtual LineItem LineItem {get; set;}
public string Account {get; set;}
public decimal Distribution {get; set;}
}
我的提要文件类似于:
InvoiceId|Amount|LineItemSequenceNumber|Quantity|PricePerUnit|Account|Distribution
1|100.00|1|1.0|50.00|1234567890|25.00
1|100.00|1|1.0|50.00|1111111111|25.00
1|100.00|2|50.0|1.00|1234567890|50.00
2|50.00|1|1.0|50.00|1234567890|50.00
在这个例子中,Invoice
1 有两个LineItem
s,LineItem
1 有 2 个Allocation
。
我已将提要文件加载到变量records
as 中IList<string[]>
,并在管道处拆分。
如何在单个 Linq 语句中将其构建为图形?看起来它应该相对简单,但是当我失去对相关records
变量的引用时,我会迷失在第二级。