Ich habe eine Menge von Daten in das unten stehenden Format ..Top 5 eine Säule und Top-5 einer anderen Spalte für jede der ersten Spalte
var data1 = new[] {
new { Product = "Product 1", Year = 2009, Sales = 1212 },
new { Product = "Product 2", Year = 2009, Sales = 522 },
new { Product = "Product 1", Year = 2010, Sales = 1337 },
new { Product = "Product 2", Year = 2011, Sales = 711 },
new { Product = "Product 2", Year = 2012, Sales = 2245 },
new { Product = "Product 3", Year = 2012, Sales = 1000 }
};
Wenn ich die Top-20 Zeilen mit max Verkäufen erhalten wollte ich wie unten etwas tun könnte ..
data1.OrderByDescending(o=>o.Sales).Take(20);
Aber was ich tun möchte, ist die Top-5-Produkte zu erhalten und (für diese Produkte) die Top-5 Jahre zusammen mit ihrem Vertrieb.
So würde die Ausgabe so etwas wie unten sein:
var outputdata = new[] {
new { Product = "Product 1", Year = 2012, Sales = 2245 },
new { Product = "Product 1", Year = 2010, Sales = 1337 },
new { Product = "Product 1", Year = 2009, Sales = 1212 },
new { Product = "Product 1", Year = 2011, Sales = 711 },
new { Product = "Product 1", Year = 2013, Sales = 522 },
new { Product = "Product 2", Year = 2012, Sales = 1000 }
};
This könnte eine ähnliche Frage für SQL sein. aber leider konnte ich nicht verstehen, wie man in linq umwandelt.
Könnten Sie vielleicht ein Ausgabebeispiel zeigen? –
Die Ausgabe würde die gleiche Struktur wie die Eingabe haben - {Product = "Product 1", Year = 2009, Sales = 1212}, wenn Ihre Frage etwas anderes ist, bitte erneut fragen, Danke – Arnab
Ich meine, könnten Sie die gewünschte Ausgabe anhand eines Beispiels illustrieren ? –