private void SetBreedCounts() { var set = new DataSet(); var ringOneTable = set.Tables.Add(); ringOneTable.Columns.Add("Grupp"); ringOneTable.Columns.Add("Ras"); ringOneTable.Columns.Add("Antal"); var ringTwoTable = set.Tables.Add(); ringTwoTable.Columns.Add("Grupp"); ringTwoTable.Columns.Add("Ras"); ringTwoTable.Columns.Add("Antal"); var breeds = Registrations .GroupBy(r => r.Breed.ToLower()) .Select(g => new { Group = g.Key.FromBreed(), Breed = g.Key, Count = g.Count() }) .OrderBy(o => o.Group) .ThenBy(o => o.Breed); var row = 0; foreach (var breed in breeds.Where(b => b.Group.FromGroup() == CompetitionRing.Rings.One)) { ringOneTable.Rows.Add(); ringOneTable.Rows[row][0] = breed.Group.ToName(); ringOneTable.Rows[row][1] = breed.Breed; ringOneTable.Rows[row][2] = breed.Count; row = row + 1; } row = 0; foreach (var breed in breeds.Where(b => b.Group.FromGroup() == CompetitionRing.Rings.Two)) { ringTwoTable.Rows.Add(); ringTwoTable.Rows[row][0] = breed.Group.ToName(); ringTwoTable.Rows[row][1] = breed.Breed; ringTwoTable.Rows[row][2] = breed.Count; row = row + 1; } RingOneBreedCounts = ringOneTable; RingTwoBreedCounts = ringTwoTable; }