Ich habe eine Modellklasse wie folgt.So extrahieren Sie bestimmte Spaltenwerte aus mehreren Zeilen mit linq
Public Class SampleModel
{
public string ItemName{ get; set; }
public string ItemNo{ get; set; }
public int ItemQty{ get; set; }
public string GroupName{ get; set; }
public int Group1 { get; set; }
public int Group2 { get; set; }
public int Group3 { get; set; }
public int Group4 { get; set; }
}
Die Tabelle enthält die Werte für die ersten 4 ItemName, ItemNo, ItemQty und GroupName. für jede Art.Nr. sind mit 4 Zeilen und nur werden ItemQty sein unterscheiden sich die von den einzelnen Gruppenname (Group1Count, Group2Count, Group3Count, Groupcount) eingegeben wird.
Tabelleninhalt wie diese.
ItemName ItemNo ItemQty GroupName
Pen 234 2 Group1
Pen 234 4 Group2
Pen 234 6 Group3
Pen 234 3 Group4
item2 365 3 Group1
item2 365 5 Group2
item2 365 2 Group3
item2 365 3 Group4
item3 370 3 Group1
item3 370 2 Group4
item4 372 6 Group2
item4 372 9 Group4
so bekomme ich alle Werte mit dieser Abfrage.
var data= from a in context.Batch where a.GroupName != "" select a;
aus dieser wieder muss ich herausfiltern basierend auf der Kombination von ItemName, Art.Nr., ItemQty und zeigen das Ergebnis wie folgt aus.
ItemName ItemNo Group1 Group2 Group3 Group4
Pen 234 2 4 6 3
item2 365 3 5 2 3
item3 370 3 0 0 2
item4 372 0 6 0 9
Bitte schlagen Sie mir vor, wie Sie eine linq-Abfrage dafür schreiben.
Sie bauen eine Pivot-Tabelle. Sie haben Glück, dass Sie eine feste Anzahl von Gruppen haben. Bei den meisten Pivot Table-Lösungen ist die Anzahl der Gruppen nicht festgelegt und eine kompliziertere Lösung ist erforderlich. – jdweng
bin sogar nicht so glücklich. Hier kann der Gruppenname zu einer beliebigen Anzahl von Werten gehen. Group1, Group2 ...... Group10 etc .. –
Ich würde die Klasse in öffentliche Liste ändern Groups {get; einstellen; } –
jdweng