I would start by projecting your entity onto a couple of names and a collection of rounds. It will be easier to work with. For instance:
var query = results
.Select(d => new { d.Name, Results = d.Rounds.Split('-').Select(int.Parse).ToList() })
.GroupBy(
d => d.Name, (key, values) => new {
Name = key,
Rounds = values.SelectMany(v => v.Rounds)
.Distinct()
.OrderBy(x => x)
.ToList()
});
, , , NumberOfRounds, FirstRound LastRound , Rounds.Count, Rounds.First(), Rounds.Last(). - .
, :
.Select(x => new {
x.Name,
x.Rounds,
NumberOfRounds = x.Rounds.Count,
FirstRound = x.Rounds.First(),
LastRound = x.Rounds.Last()
});