我有一個如下的場景。其實我得到了預期的結果。但需要避免在一個領域重複。LINQ中避免重複
我有一個自定義類來顯示我的報告中的記錄。像下面的類:
public class MyData
{
public int ID;
public string InvoiceNumber;
public string DeliveryNoteNumber;
public string QuotationNumber;
}
這裏的流量爲 1.報價詳情 2.交貨細節。單一交貨單可以有多個報價 3.發票明細。這裏單張發票可以有多個發貨單。
因此,當我的發票報告中,我需要顯示該發票的所有交貨單需要以逗號分隔的標籤顯示。像所有報價需要以逗號分隔顯示。
這裏我有一個問題。我在一份交貨單中有多個報價單,並將交貨單添加到一張發票中。所以在報告中,我可以使用逗號分隔引號,但傳送說明也重複。我用組加入到組的數據和代碼和示例以下
List<MyData> data = new List<MyData>();
MyData d1 = new MyData();
d1.ID = 1;
d1.InvoiceNumber = "Inv001";
d1.DeliveryNoteNumber = "DN001";
d1.QuotationNumber = "Q001";
data.Add(d1);
MyData d2 = new MyData();
d2.ID = 1;
d2.InvoiceNumber = "Inv001";
d2.DeliveryNoteNumber = "DN001";
d2.QuotationNumber = "Q002";
data.Add(d2);
var source = data.GroupBy(i => new { i.ID, i.InvoiceNumber })
.Select(g => new MyData
{
ID = g.First().ID,
InvoiceNumber = g.Key.InvoiceNumber,
DeliveryNoteNumber = string.Join(", ", g.Select(i => i.DeliveryNoteNumber)),
QuotationNumber = string.Join(", ", g.Select(i => i.QuotationNumber)),
});
label1.Text = source.FirstOrDefault().DeliveryNoteNumber;
label2.Text = source.FirstOrDefault().QuotationNumber;
輸出在文本框下面:
Text1Result = DN001, DN001
Text2Result = Q001, Q002
這裏第一個文本框是問題所在。請給出解決這個問題的想法。或者我需要更改存儲過程以適應此。我的自定義類(MyData)從sp填充(這裏我只是硬編碼)。使用加入報價表,交貨單表和發票表創建的sp
有沒有什麼辦法可以壓縮這一點,所有這些其他細節讓你的問題難以理解。 –
對不起,我會閱讀格式提示。 – Akhil