我有對象的列表,從中我想在一起基礎上AnalyteID
,MethodID
和InstrumentID
領域組數據庫填充TargetList
,但Unit
領域將被保存在適用於每個分組對象的列表中。LINQ分組多個字段,並把非唯一的領域進入名單
此外,只有其中一個可用單位有一個目標分配給它。因此,在分組過程中,我需要檢查一下目標是否可用,如果有,請跳過創建單元列表。
的TargetList
對象包含以下屬性:
public int id { get; set; }
public int AnalyteID { get; set; }
public string AnalyteName { get; set; }
public int MethodID { get; set; }
public string MethodName { get; set; }
public int InstrumentID { get; set; }
public string InstrumentName { get; set; }
public int UnitID { get; set; }
public string UnitDescription { get; set; }
public decimal TargetMean { get; set; }
public List<Unit> Units { get; set; }
我使用LINQ多分組的方法:
TargetList.GroupBy(x => new { x.AnalyteID, x.MethodID, x.InstrumentID })...
但不確定如何檢查如果目標不存在,則在提取當前組中的所有可用單元之前的行中的目標。
分組效果很好,預計數據將是'Target'類型,但是您需要發佈什麼內容,如果需要,您可以使用'SelectMany'來展平'Units' –
我無法很好地理解您的意思。什麼是'目標'。一行意味着'目標'? – sinanakyazici
返回的每一行實際上都是一個「目標」對象。任何具有分配的TargetMean的Target都只返回一行(因爲只有一個單位可以分配給Target),但是如果沒有TargetMean可用,SP返回的行數與UnitID一樣多對於分析物/方法/儀器組合,因此我需要對返回的行進行分組,並將所有可用單位(對於沒有TargetMean的每個目標組合)進行分組,並將它們放入列表中,希望這是一個小例子更清晰 – Sandman