Feedback

LINQ Rang im Ergebnis

Sprache: C#

Dieses Beispiel zeigt wie ein Rang zu einer LINQ-Query hinzugefügt wird (Äquivalent zu RANK von T-SQL)
var query1 =
	from z in db.Zeiten
	group z by z.Projekte.Name into grp
	let summe = grp.Sum(s => s.Stunden)
	orderby summe descending
	select new
	{
		Name = grp.Key,
		Stunden = summe
	};

var query2 =
	from s in query1
	select new
	{
		Rang = query1.Count(s2 => s2.Stunden > s.Stunden) + 1,
		Name = s.Name,
		Stunden = s.Stunden
	};				

foreach (var q in query2)
	Console.WriteLine(q);
var query1 =
	from z in db.Zeiten
	group z by z.Projekte.Name into grp
	let summe = grp.Sum(s => s.Stunden)
	orderby summe descending
	select new
	{
		Name = grp.Key,
		Stunden = summe
	};

var query2 =
	from s in query1
	select new
	{
		Rang = query1.Count(s2 => s2.Stunden > s.Stunden) + 1,
		Name = s.Name,
		Stunden = s.Stunden
	};				

foreach (var q in query2)
	Console.WriteLine(q);